速查表 · 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 速查表