速查表 · Cron 速查表 · Cron 只在周末执行 — Crontab 示例
Cron 只在周末执行 — Crontab 示例
0 10 * * 6,0
只在周六和周日的 10:00 执行。
逐字段解释
| 字段 | 值 | 含义 |
|---|---|---|
分钟 | 0 | 第 0 分 |
小时 | 10 | 上午 10 点 |
每月几号 | * | 每一天(不加限制) |
月份 | * | 每个月 |
星期几 | 6,0 | 周六和周日 |
只在周末的排程来自星期几字段里的逗号列表:6,0(周六、周日)— 顺序无所谓,0,6 完全一样。
这一页也正好讲清 cron 最出人意料的一条规则:当「每月几号」和「星期几」同时被限制时,cron 是两者取并集,只要任一匹配就跑,不是取交集。所以 0 0 1 * 6,0 会在每月 1 号跑,同时每个周六周日也跑。不关心的那个字段请保持 *。
0 10 * * 6,0 /usr/local/bin/weekend-maintenance.sh
相关调度
常见问题
我设了 6,0 和 15,为什么 15 号也跑了?
这就是并集陷阱:几号为 15 加上星期为周末,含义是「15 号,或者任何周末的日子」。两个字段里只限制一个。
周六 = 6、周日 = 0,那能写 7 吗?
可以,多数实现里 7 也是周日。逗号列表里 0,6 和 6,7 都表示周六加周日 — 但别在范围里混用 0 和 7。
只要每个周日?0 10 * * 0 — 星期几字段只放一个 0,就是纯周日。
别死记语法 — 用可视化生成器
在 Cron 编辑器里试用这条排程完整速查表:Cron 速查表