我的 crontab 中有一行这样的代码:
01 6 * * */3 $TASK
变量 $TASK 向我发送一封特定的电子邮件。我知道我已经编写了 cron 以在每三天的早上 06:01 触发此操作。
奇怪的是,当我收到电子邮件时(来自 GMail 的截图):
他们是大多每三天出现一次,但通常会在连续的几天出现(今天和昨天;3 月 1 日和 2 日;2 月 23 日和 22 日;...)。有人能解释一下发生了什么吗?
编辑:啊,Cron 服务器有可能在周六晚上完全重置吗?如果是这样,那是 cron 协议还是系统管理员的配置方式?
2014
January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 1 1
5 6 7 8 9 10 11 2 3 4 5 6 7 8 2 3 4 5 6 7 8
12 13 14 15 16 17 18 9 10 11 12 13 14 15 9 10 11 12 13 14 15
19 20 21 22 23 24 25 16 17 18 19 20 21 22 16 17 18 19 20 21 22
26 27 28 29 30 31 23 24 25 26 27 28 23 24 25 26 27 28 29
30 31
答案1
您曾说过:
01 6 * * */3 $TASK
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ │
│ │ │ │ └───── day of week (0 - 7) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)
│ │ │ └────────── month (1 - 12)
│ │ └─────────────── day of month (1 - 31)
│ └──────────────────── hour (0 - 23)
└───────────────────────── min (0 - 59)
如上所述,你的 cron 任务被安排在每三天执行一次星期。一周从周日开始,因此您的 cron 作业将在周日、周三、周六执行。另一周的开始将使其再次从周日开始。
你可以修复你的 cron 任务,让它在一个月内每三天执行一次:
01 6 */3 * * $TASK
您可能还想参考计划任务。