这是一个着名的"问题",当crontab行包含星期和月中的某一天时,cron使用OR来计算一天来发出命令.例如,如果你写
* * 13 * 5 command
Run Code Online (Sandbox Code Playgroud)
该命令将在每个星期五和每月的第13天执行,而不仅仅是在星期五的第13天.这与其他字段的格式相矛盾(当您编写30 2***时,它将仅在小时和分钟时执行 - 正是您指定的;除了DoW和DoM之外的所有其他字段都相同).
所以我的问题是:这个例外是否有特定的原因?我的意思是,应该有一个理由,但我似乎无法找到它.(相反,我看到互联网中的很多人都希望像其他任何一样对待这些领域 - 使用"AND策略",正好适用于"星期五13"或"5月的第2个星期四"之类的东西.)
可能重复:
cron:如何安排每个月的第一个星期日运行
我想在每个月的第一个星期天早上7点执行一个php脚本.我在服务器crontab中输入了以下行.
0 7 1-7 * 0 user /path/to/script.php
Run Code Online (Sandbox Code Playgroud)
今天我看到脚本确实在周三早上运行.怎么会发生这种情况?我以为最后0定义了星期日?
感谢您的高级帮助.