1. 认识与理解
wiki: 工具型软件cron是一款类Unix的操作系统下的基于时间的任务管理系统。用户们可以通过cron在固定时间、日期、间隔下,运行定期任务(可以是命令和脚本)。cron常用于运维和管理,但也可用于其他地方,如:定期下载文件和邮件。cron该词来源于希腊语chronos(χρόνος),原意是时间。
(Cron表达式由7个部分组成,从左到右分别是秒、分、时、日、月、周、年,顺序不可颠倒,每个部分之间由空格分离,年可以忽略不写)
具体格式如下:
特殊字符:
- "*"代表所有的取值范围内的数字;
- "/"代表每一定时间间隔的意思; (开始时间/间隔时间 例如: 19/2 即每天的19点开始,间隔两小时执行一次 )
- "-"代表从某个区间范围,是闭区间; (例如: 5-9 即每天的5至9点区间内执行)
- ","分散的数字(不一定连续);(例如: 5,8,9 即每天的5,8,9点小时区间内执行)
- "?" 代表忽略;(当表达式冲突的时候,就用到它。例如: 0 0 0 11 * 2 即每个月的11号星期三0点0分0秒触发,但这天不一定周 四,就冲突了,就可以用?忽略,可以改成 0 0 0 11 * ?)
特殊说明:
- 周/月份都可以用英文简写 例如 0 10,30 7 ? 1 WED 即在一月份每个周三上午的 7:10 和 7:30 执行一次
- 年 例如 0 15 10 * * ? 2020 即在 2020年内每天上午的 10:15 执行一次
- 周与日月不可同时并存(例如 30 12 11 9 5 就是错误的写法)
2.练习
在线生成Cron表达式网址: https://cron.qqe2.com/
牛刀小试:
1. 每1分钟执行一次
2. 在上午8点到11点的第3和第15分钟执行
3. 每个星期一的上午8点到11点的第3和第15分钟执行
4. 每天18 : 00至23 : 00之间每隔30分钟执行
5. 晚上11点到早上7点之间,每隔一小时执行
参考答案:
1. 0 * * * * *
2. 0 3,15 8-11 * * *
3. 0 3,15 8-11 * * 1
4. 0 0,30 18-23 * * *
5. 0 * 23-7/1 * * *
温馨提示:
年份:
一月:Jan. 二月:Feb. 三月:Mar. 四月:Apr. 五月:May. 六月:June
七月:July. 八月:Aug. 九月:Sept. 十月:Oct. 十一月:Nov. 十二月:Dec.
星期:
星期一 Mon.(Monday) 星期二 Tues(Tuesday) 星期三 Wed.(Wednesday)
星期四 Thur.(Thursday) 星期五 Fri.(Friday) 星期六 Sat.(Saturday)
星期日 Sun.(Sunday)