Cron 表达式用于在 Unix/Linux 系统中定义定时任务的执行时间。Cron 表达式由五个或六个字段组成,每个字段代表不同的时间单位。
README.md
* * * * * *
- - - - - -
| | | | | |
| | | | | +---- 星期几 (0 - 7) (0 或 7 代表星期天)
| | | | +------ 月份 (1 - 12)
| | | +-------- 日期 (1 - 31)
| | +---------- 小时 (0 - 23)
| +------------ 分钟 (0 - 59)
+-------------- 秒数 (0 - 59)
字段说明
- 秒数 (0 - 59):表示任务在每分钟的哪一秒执行。
- 分钟 (0 - 59):表示任务在每小时的哪一分钟执行。
- 小时 (0 - 23):表示任务在每天的哪个小时执行。
- 日期 (1 - 31):表示任务在每月的哪一天执行。
- 月份 (1 - 12):表示任务在每年的哪个月份执行。
- 星期几 (0 - 7):表示任务在每周的哪一天执行(0 或 7 代表星期天)。
特殊字符
- *:表示所有可能的值。例如,在分钟字段中使用 * 表示每分钟都执行。
- ,:表示列表值。例如,在小时字段中使用 1,2,3 表示在 1 点、2 点和 3 点执行。
- -:表示范围值。例如,在日期字段中使用 1-5 表示从 1 号到 5 号执行。
- /:表示步长值。例如,在分钟字段中使用 */5 表示每 5 分钟执行一次。
- ?:只能在日期和星期几字段中使用,表示不指定值。
- L:只能在日期和星期几字段中使用,表示最后一天。例如在日期字段中使用 5L 表示每月的最后一天执行。
- W:只能在日期字段中使用,表示最近的工作日。例如在日期字段中使用 5W 表示最近的 5 号工作日执行。
- #:只能在星期几字段中使用,表示第几个星期几。例如在星期几字段中使用 6#3 表示每月的第三个星期五执行。
- 周几:在星期几字段中使用缩写(SUN, MON, TUE, WED, THU, FRI, SAT)表示星期几。
- 月份:在月份字段中使用缩写(JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC)表示月份。
特殊字符串
- @reboot:在系统启动时执行。
- @yearly 或 @annually:每年执行一次,相当于 0 0 1 1 *。
- @monthly:每月执行一次,相当于 0 0 1 * *。
- @weekly:每周执行一次,相当于 0 0 * * 0。
- @daily 或 @midnight:每天执行一次,相当于 0 0 * * *。
- @hourly:每小时执行一次,相当于 0 * * * *。