本文讲述的是如何在Centos7系统中定时执行python脚本,python也有很多定时的框架,比如apscheduler,应用场景不一样选择也不一样
1. 下载crontabs
yum install crontabs
2. 编辑crontab配置
我们直接执行python脚本的时候使用的命令是 python XXX
,所以首先要找到python的绝对路径
which python // 得到python的指向路径
找到路径后开始编写 crontab配置文件
crontab -e
2.1 cron表达式语法规则
分钟 | 小时 | 日期 | 月份 | 周 | 命令 | 日志 |
---|---|---|---|---|---|---|
0-59 | 0-23 | 1-31 | 1-12 | 0-7 周的数字为 0 或 7 时,都代表“星期天”的意思 | 你要执行的命令 | >> 后跟日志绝对路径 |
特殊字符
字符 | 含义 |
---|---|
* | 代表任何时刻都可以的意思,比如 36 10 * * * 就代表无论几日,几月,几周,几日的礼拜几,10:36都执行命令 |
, | 代表多个时间段分隔的意思,比如 36 10,11 * * * 就代表,10:36和11:36都执行命令 |
- | 代表时间范围之内的意思,比如 36 10-11 * * * 就代表,10点到11点的36分都执行命令,跟 36 10,11 * * * 是一样的 |
/n | 代表每隔n单位时间执行一次的意思,比如 */20 * * * * 就代表,每隔 20分钟执行一次 |
举例说明:
*/20 * * * * /usr/bin/python /usr/hearBeat_sunmone/send_hearBeat.py >> /usr/hearBeat_sunmone/send_hearBeat.log
- 每隔20分钟执行一次
send_hearBeat.py
文件,保存日志到send_hearBeat.log
中
3. 重启crond 服务
配置结束后,重启crond服务使其生效
service crond restart
4. 查看是否成功开启任务
查看日志
cat /var/log/cron
查看cron任务列表
crontab -l
4. 更多语法
实例1:每1分钟执行一次myCommand
* * * * * myCommand
实例2:每小时的第3和第15分钟执行
3,15 * * * * myCommand
实例3:在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * myCommand
实例4:每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * myCommand
实例5:每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 myCommand
实例6:每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
实例7:每月1、10、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
实例8:每周六、周日的1 : 10重启smb
10 1 * * 6,0 /etc/init.d/smb restart
实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart
实例10:每星期六的晚上11 : 00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart
实例11:每一小时重启smb
* */1 * * * /etc/init.d/smb restart
实例12:晚上11点到早上7点之间,每隔一小时重启smb
* 23-7/1 * * * /etc/init.d/smb restart