![用于夜间安排的 crontab 条目](https://linux22.com/image/15402/%E7%94%A8%E4%BA%8E%E5%A4%9C%E9%97%B4%E5%AE%89%E6%8E%92%E7%9A%84%20crontab%20%E6%9D%A1%E7%9B%AE.png)
我需要从周一到周五晚上 10 点到第二天凌晨 5 点每两分钟安排一个脚本,但我不确定以下内容是否正确且有效,或者是否还有其他正确答案...
*/2 22-00 * * 1-5 /myscript.sh
*/2 00-05 * * 2-6 /myscript.sh
更新:我预计从周日晚上 10 点开始,从那时起我预计它每天运行 22-05 直到周五。
答案1
这可以在一个条目中完成:
*/2 22-23,0-4 * * * /path/to/myscript.sh
/path/to/myscript.sh
每天 22:00 到 04:58 每两分钟执行一次。
考虑到问题的澄清附录,这不能在一个条目中完成,因为不同日期有不同的运行时间。像这样:
*/2 22-23 * * 0-5 /path/to/myscript.sh # Execute from 2200-2358 Sun-Fri
*/2 00-04 * * 1-5 /path/to/myscript.sh # Execute from 0000-0458 Mon-Fri
答案2
第一个条目指定向后运行的范围。那应该是
*/2 22-23 * * 1-5 /myscript.sh
覆盖范围为周一至周五 22:00 至 23:58。
第二个条目可能不应该使用零填充的数字:
*/2 0-4 * * 1-5 /myscript.sh
这涵盖了 00:00 到 04:58 的范围。
上述两个时间表将/myscript.sh
在每周一至周五的 22:00 至 04:58 之间每两分钟运行一次(从周一早上 00:00 开始,到周五晚上 23:58 结束)。
这两个可以合并成
*/2 22-23,0-4 * * 1-5 /myscript.sh
另请参阅此时间表crontab 大师网站。
如果您希望在凌晨 5 点进行最后一次跑步,请添加额外的时间表:
0 5 * * 1-5 /myscript.sh
考虑到您更新的问题:
*/2 22-23 * * 7 /myscript.sh
*/2 22-23,0-4 * * 1-4 /myscript.sh
*/2 0-4 * * 5 /myscript.sh
0 5 * * 1-5 /myscript.sh
/myscript.sh
从周日 22:00 到周五 05:00,22:00 至 05:00 每两分钟运行一次。
- 第一个时间表运行周日晚上的工作。
- 第二个时间表运行周一至周四的晚间和早间工作(直到 04:58)。
- 第三个时间表运行周五早上的作业(直到 04:58)。
- 第 4 个计划在周一至周五 05:00 运行作业。