1. 示例
- 用 crontabs 服务设置每秒钟执行一次 python 脚本,打印内容重定向到日志文件。
如果当前系统没安装,就先
yum install crontabs
创建测试文件 /home/TestCts/task.py
import datetime
if __name__ == "__main__":
print(datetime.datetime.now(),"执行了一次本程序")
执行脚本打印如下
[root@VM_0_13_centos TestCts]# python3 task.py
2021-06-21 11:11:13.157853 执行了一次本程序
用如下命令查看当前系统中的定时任务列表
[root@VM_0_13_centos TestCts]# crontab -l
*/5 * * * * flock -xn /tmp/stargate.lock -c '/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &'
使用如下命令编辑任务列表
[root@VM_0_13_centos TestCts]# crontab -e
添加一个任务,每分钟执行一次 task.py
脚本,将结果输出到 task.log
。添加后任务列表如下。
*/5 * * * * flock -xn /tmp/stargate.lock -c '/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &'
* * * * * /usr/bin/python3 /home/TestCts/task.py >>/home/TestCts/task.log
重启服务
[root@VM_0_13_centos TestCts]# systemctl restart crond.service
查看日志(需要等待计划任务执行后)
[root@VM_0_13_centos TestCts]# tail -f task.log
2021-06-21 11:19:01.969594 执行了一次本程序
2021-06-21 11:20:01.435678 执行了一次本程序
2021-06-21 11:21:01.777830 执行了一次本程序
2. 配置文件格式
配置文件内容格式如下
* * * * * /usr/bin/python3 /home/TestCts/task.py >>/home/TestCts/task.log
其代表意义及取值范围如下
格式 | * | * | * | * | * | Command |
---|---|---|---|---|---|---|
含义 | 分钟 | 小时 | 日期 | 月份 | 星期 | 命令 |
取值 | [0, 59] | [0, 24] | [1, 31] | [1, 12] | [1, 7] | / |
可使用特殊字符及含义
*
表示任何/
表示间隔,“每”。-
表示一段时间,
表示离散时间
3. 举例说明
1. 普通案例
- 每 1 分钟执行一次
* * * * * python3 task.py
或*/1 * * * * python3 task.py
- 每 5 分钟执行一次
*/5 * * * * python3 task.py
- 每小时的第 5 分钟执行一次
5 * * * * python3 task.py
- 每天的 09:05 执行一次
5 9 * * * python3 task.py
- 每月 3 号的 09:05 执行一次
5 9 3 * * python3 task.py
- 每年 6 月 3 号的 09:05 执行一次
5 9 3 6 * python3 task.py
- 每 星期三 的 09:05 执行一次
5 9 * * 3 python3 task.py
2. 稍复杂一点的案例
- 每月 3、13 号的 09:05 各执行一次
5 9 3,13 * * python3 task.py
- 每月 3、13 号的 09:05、10:05、11:05 各执行一次
5 9-11 3,13 * * python3 task.py
- 每月 3、13 号的 09:00-11:00 内每 15 分钟 各执行一次
*/15 9-11 3,13 * * python3 task.py
3. 每 x 秒执行方法
设置每10秒钟执行一次
* * * * * /usr/bin/python3 /home/TestCts/task.py >>/home/TestCts/task.log
* * * * * sleep 10; /usr/bin/python3 /home/TestCts/task.py >>/home/TestCts/task.log
* * * * * sleep 20; /usr/bin/python3 /home/TestCts/task.py >>/home/TestCts/task.log
* * * * * sleep 30;/usr/bin/python3 /home/TestCts/task.py >>/home/TestCts/task.log
* * * * * sleep 40;/usr/bin/python3 /home/TestCts/task.py >>/home/TestCts/task.log
* * * * * sleep 50;/usr/bin/python3 /home/TestCts/task.py >>/home/TestCts/task.log
.
.
.
.
.
.
桃花仙人种桃树,又摘桃花换酒钱_