Cron 表达式基本规则


什么是Cron表达式?

Cron 表达式是一种用于在 Unix-like 操作系统的定时任务调度器 cron 中表示时间的字符串。

Cron表达式的作用?

工作

定期数据备份、定期报告生成、邮件发送等自动化任务。

生活

定时拉取订阅文章、定时跑脚本薅羊毛。

Cron表达式基本规则

基本组成

Cron 表达式由 5 个(或 6 个,取决于系统)空格分隔的字段组成。

5字段的Cron

从左到右分别表示分钟 (0 - 59)、小时 (0 - 23)、 天(1-31)、月(1 - 12)、星期几(0 - 7 ,0和7都可以表示星期天)。

6个字段的Cron

规则同5个字段,只是增加了一个表示秒的字段。

Cron 表达式中的特殊字符

  • *:表示匹配任何值。
  • ,:用于分隔多个值。
  • -:用于表示范围。
  • /:用于指定步长。
  • ?:仅用于 day of month 和 day of week 字段,表示无特定值。
  • L:仅用于 day of month 和 day of week 字段,表示最后一天。
  • W:仅用于 day of month 字段,表示最近的工作日(周一到周五)。
  • #:仅用于 day of week 字段,表示第几个工作日(如 5#2 表示第二个星期五)。

示例

*号例子

* * * * *

逗号(,

指定多个值,从而允许在多个时间点执行任务。 指定多分分钟: 例子1:每小时的第 5 分钟和第 10 分钟执行任务

0 1,2,3 * * *

指定多个小时: 每天的 1 点、2 点和 3 点执行任务 0 1,2,3 * * *

连字符(-

用于表示范围。 例子1: 每周一到周五的1点、 2点、3点整执行。

0 1-3 * * 1-5

问号(?

一般很少使用,约等于*

字母(L

例子 解释:在日期字段中,L 表示月份的最后一天。 例如,如果你想在每个月的最后一天执行任务。

0 0 L * *

斜杠(/

每隔两个小时的整点(0 点、2 点、4 点等)执行一次。

0 */2 * * *

字母W

假设你需要每天工作日(周一到周五)的上午 9 点执行任务。

0 9 * * 1-5
or 
0 9 * * W

#

用于指定某个月份的第几个星期几。 示例:假设你需要每个月的第二个周三执行任务

0 0 * * 3#2