一、常用命令
1、查看crontab任务列表
crontab -l
2、编辑crontab定时执行任务
crontab -e
3、删除crontab定时任务
crontab -r
4、相关命令:
systemctl start crond.service #启动服务
systemctl stop crond.service #关闭服务
systemctl status crond.service #查看服务状态
systemctl restart crond.service #重启服务
二、定时语法
crontab 一种时间表达式:
基本格式 :
* * * * * command
分 时 日 月 周 命令
先来看一个例子。每天凌晨1:00执行备份程序:0 1 * * * /root/backup.sh 。其中/root/backup.sh 这是脚本路径,要使用绝对路径,前面的日期格式请直接看下图就知道了
crontab还有操作符,用来实现一些复杂的时间设定需要。操作符有:
1、* 取值范围内的所有数字 ,代表所有。
2、/ 每过多少个数字 ,代表每隔n长时间。
3、- 从X到Z ,代表一段时间范围。
4、,散列数字,代表分割开多个值。
如果还有搞不懂代码公式的,可以使用这个在线Cron表达式生成器:http://cron.qqe2.com/
三、20个经典示例
在使用时记得替换为自己的脚本路径。请在相应的脚本第一行加上#!/bin/bash
,否则脚本在定时任务中无法执行。
实例1:每1分钟执行一次
* * * * * /root/backup.sh
实例2:每小时的第3分钟和第15分钟执行一次
3,15 * * * * /root/backup.sh
实例3:每天的8点到11点的第3和第15分钟执行一次
3,15 8-11 * * * /root/backup.sh
实例4:每隔两天的上午8点到11点的第3和第15分钟执行一次
3,15 8-11 */2 * * /root/backup.sh
实例5:每周一上午8点到11点的第3和第15分钟执行一次
3,15 8-11 * * 1 /root/backup.sh
实例6:每晚的21:30执行一次
30 21 * * * /root/backup.sh
实例7:每月1、10、22日的4 : 45执行一次
45 4 1,10,22 * * /root/backup.sh
实例8:每周六、周日的1 : 10执行一次
10 1 * * 6,0 /root/backup.sh
实例9:每天18 : 00至23 : 00之间每隔30分钟执行一次
0,30 18-23 * * * /root/backup.sh
实例10:每星期六的晚上23: 00 pm执行一次
0 23 * * 6 /root/backup.sh
实例11:每一小时执行一次
* */1 * * * /root/backup.sh
实例12:每天晚上23点到第二天早上7点之间,每隔一小时执行一次
* 23-7/1 * * * /root/backup.sh
实例13: 每个星期的第一天执行一次(即每个星期天晚上24:00开始执行).
@weekly /root/backup.sh
实例14:每个月的15日执行一次.
0 11 15 * * /root/backup.sh
实例15:每个月的第一天执行一次(即每个月的1日凌晨0点开始执行).
@monthly /root/backup.sh
实例16: 在指定的月份执行一次(在1月,4月和 6月每天晚上0点执行一次).
0 0 * jan,apr,jun * /root/backup.sh
实例17: 重启后执行一次.
@reboot /root/backup.sh
实例18:定时任务执行后发一封邮件通知.
MAILTO="raj"
1 1 * * * /root/backup.sh
实例19:指定shell (默认的是/bin/bash)
SHELL=/bin/sh
1 1 * * * /root/backup.sh
实例20:指定环境变量.
PATH=/sbin:/bin:/usr/sbin:/usr/bin
1 1 * * * /root/backup.sh