crontab的时间表达式
基本格式 :
* * * * * command
分 时 日 月 周 命令
下面看几个例子:
1、每分钟执行一次
* * * * *
2、每隔一小时执行一次
00 * * * *
3、每小时的15和30分各执行一次
15,45 * * * * (,表示并列)
4、在每天上午 8- 11时中间每小时 15 ,45分各执行一次
15,45 8-11 * * * command (-表示范围)
5、每个星期一的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 command
6、每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * command
例子
现在我们需要在每天的凌晨启动cluster.py脚本,我们该怎么做。
- Step1. 创建相应的.sh文件。
这里面强烈建议用.sh作为服务脚本,如果直接执行cluster.py太容易出现路径引用错误问题了。
新建一个cluster.sh文件(文件路径自己定),可以参考:#!/bin/sh cd cluster.py所在的路径 python3 cluster.py echo "done"
- Step2. 写cron脚本文件,命名为crontest.cron(名字任意取,后缀为.cron即可)。
crontest.cron可以参考
建议将定时任务的脚本写到日志里面,这样方便去发现问题。print日志的时候,不要含中文,不然最容易出现编码问题35 18 * * * sh cluster.sh的绝对路径/cluster.sh >> write_cluster.log的绝对路径/write_cluster.log 2>&1 &
- Step3. 添加定时任务。执行命令 “crontab crontest.cron”。
- Step4. 查看定时任务是否成功:“crontab -l” 。
- Step5. 确定cron是否启动:ps aux | grep cron。
启动正常应该会有root 108568 0.0 0.0 27716 1200 ? Ss 17:27 0:00 /usr/sbin/cron
一些常见的命令
ubuntu下的一些命令
- apt-get install cron 安装cron服务
- sudo /etc/init.d/cron start 启动cron服务
- sudo /etc/init.d/cron stop 关闭cron服务
- ps aux | grep cron 查看cron服务是否启动
- crontab -l 列出某个用户cron服务的详细内容
- crontab -e 编辑定时任务