一、Cron 表达式语法
Cron 表达式是由 5 个时间字段和一个可选的命令字段组成的,格式如下:
* * * * * command
字段位置 | 含义 | 取值范围 |
---|---|---|
* | 分钟(minute) | 0-59 |
* | 小时(hour) | 0-23 |
* | 日(day) | 1-31 |
* | 月(month) | 1-12 或者 jan, feb, …, dec |
* | 周几(week) | 0-7(0 和 7 都表示周日)或 sun, mon, …, sat |
command | 要执行的命令 | shell 命令或脚本路径 |
*
表示任意值。- 每个字段用空格分隔。
二、特殊符号含义
在 Cron 表达式中,除了具体的数字,还可以使用以下特殊符号:
符号 | 含义 |
---|---|
* | 任意值 |
, | 列出多个值,例如:1,3,5 表示第 1、3、5 分钟执行 |
- | 表示一个范围,例如:1-5 表示从第 1 到第 5 分钟内执行 |
/ | 表示间隔执行,例如:*/5 表示每隔 5 分钟执行一次 |
? | 仅用于日和周的字段,表示不指定具体值(与 * 类似但更灵活) |
L | 表示 “最后” ,例如 L 用在日字段表示每月最后一天 |
W | 表示离某天最近的工作日,例如:15W 表示离 15 号最近的工作日 |
# | 表示第几个周几,例如:3#2 表示每月第 2 个星期三 |
三、一些例子:
表达式 | 含义 |
---|---|
0 0 * * * | 每天 0 点执行一次 |
*/5 * * * * | 每 5 分钟执行一次 |
30 8 * * 1-5 | 每周一到周五的 8:30 执行 |
0 22 * * 1 | 每周一的 22:00 执行 |
0 0 1 * * | 每月 1 号的 0:00 执行 |
0 10 15 * * | 每月 15 号的 10:00 执行 |
0 12 * jan,feb,mar * | 每年 1、2、3 月的每天中午 12:00 执行 |
0 9 * * 7 | 每周日的 9:00 执行 |