cron表达式
cron表达式即计划任务,约定任务在特定的时间执行,有5位、6位、7位之分,不同位数之间以空格分隔。
位数 | 含义 |
---|---|
5位:* * * * * | 分、时、天、月、周 |
6位:* * * * * * | 秒、分、时、天、月、周 |
7位:* * * * * * * | 秒、分、时、天、月、周、年 |
tips:大部分情况下会省略年这一位,成为6位,再省略秒,就成为5位。
linux系统中的crontab的表达式只有5位。
1. 常见的符号
*:匹配该域的任意值
-:表示范围
如:0 0 8-18 * * * 每天8点到下午6点时间内的0分0秒触发
/: 时间间隔,用来指定数值的增量;a/b表示从a开始每隔时间b
,:枚举值
如:0 0 8,18 * * ? 在每天8点和下午6点整触发
?: 仅日期和星期域支持该字符,表示不指定值
#:确定每个月第几个星期几,仅星期域支持该字符。
如:4#2表示某月的第二个星期四。
L: 单词Last的首字母,表示最后一天,仅日期和星期域支持该字符,
说明:指定L字符时,避免指定列表或者范围,否则,会导致逻辑问题。
如:在星期域中的6L表示这个月的最后一个星期六
W:除周末以外的有效工作日,在离指定日期的最近的有效工作日触发事件。
W字符寻找最近有效工作日时不会跨过当前月份,连用字符LW时表示为
指定月份的最后一个工作日。
如:在日期域中5W,如果5日是星期六,则将在最近的工作日星期五,即
4日触发
2. linux中的crontab
上面已经说到linux系统中的cron表达式为5位,下面为具体说明: