遇到了个坑记录下,以为Cron表达式和Linux支持的Crontab中的定时表达式是一样的,其实不然。
Cron 各项的描述
以下是 crontab 文件的格式:
{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
o minute: 区间为 0 – 59
o hour: 区间为0 – 23
o day-of-month: 区间为0 – 31
o month: 区间为1 – 12. 1 是1月. 12是12月.
o Day-of-week: 区间为0 – 7. 周日可以是0或7.
Crontab 示例
在 12:01 a.m 运行,即每天凌晨过一分钟。这是一个恰当的进行备份的时间,因为此时系统负载不大。
1 0 * * * /root/bin/backup.sh
每个工作日(Mon – Fri) 11:59 p.m 都进行备份作业。
59 11 * * 1,2,3,4,5 /root/bin/backup.sh
下面例子与上面的例子效果一样:
59 11 * * 1-5 /root/bin/backup.sh
每5分钟运行一次命令
*/5 * * * * /root/bin/check-status.sh
每个月的第一天 1:10 p.m 运行
10 13 1 * * /root/bin/full-backup.sh
每个工作日 11 p.m 运行。
0 23 * * 1-5 /root/bin/incremental-backup.sh
Crontab 选项
以下是 crontab 的有效选项:
o crontab –e : 修改 crontab 文件. 如果文件不存在会自动创建。
o crontab –l : 显示 crontab 文件。
o crontab -r : 删除 crontab 文件。
o crontab -ir : 删除 crontab 文件前提醒用户。
Crontab和Cron表达式区别
Cron表达式从左往右,从秒开始;而Crontab则是从分钟开始的。
Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格
Seconds Minutes Hours DayofMonth Month DayofWeek Year
Seconds Minutes Hours DayofMonth Month DayofWeek
crontab:
MIN(分钟) HOUR(小时) DAY(日期) MONTH(月份) DAYOFWEEK(星期) COMMAND(命令)
参考
https://www.cnblogs.com/mryangbo/p/11820231.html
https://www.cnblogs.com/aminxu/p/5993769.html