Cron 表达式的结构

Cron 是 Unix 世界定时的标准语言,n8n、Linux crontab、各种 CI 调度器都在用。一个标准 Cron 表达式有 5 个字段,用空格分隔:

┌──────── 分钟 (0-59)
│ ┌────── 小时 (0-23)
│ │ ┌──── 日   (1-31)
│ │ │ ┌── 月   (1-12 或 JAN-DEC)
│ │ │ │ ┌ 星期 (0-7,0和7都是周日,MON-SAT)
* * * * *

五个条件都满足的时刻才会触发。例如 30 22 * * * 表示每天晚上 22:30。

特殊符号的含义

符号 含义 示例
* 每一个可能的值 * * * * * 每分钟
, 枚举多个值 0 9,18 * * * 每天9点和18点
- 范围 0 9-17 * * * 每天9点到17点整点
/ 步进 */10 * * * * 每10分钟
? 不指定(同*) 常见于日/周字段

最常用的表达式清单

*/5 * * * *      每5分钟
0 * * * *        每小时整点
0 9 * * 1-5      工作日每天早上9点
0 3 * * 0        每周日凌晨3点
0 0 1 * *        每月1号零点
0 0 * * 1,4      每周一和周四零点
15 14 1 * *      每月1号14:15

一个高频大坑:同时填「日」和「周」

当「日」和「星期」两个字段都不是*时,两者是"或"的关系:任一匹配就触发。想表达"每月1号且必须是周一"用标准 cron 写不出来——这种需求要用程序内部二次判断。

写完先验证一遍

手写 cron 很容易错一位就变成每天执行。用我们的Cron表达式解析工具输入表达式,中文解释每个字段的含义,并直接预测接下来5次执行时间——比在服务器上等一天高效得多。