【发布时间】:2015-02-24 01:00:34
【问题描述】:
我想在这些时间跨度之间每 5 分钟运行一次 cron 作业:
- 星期二:晚上 8 点 - 晚上 10 点
- 星期三:晚上 8 点 - 晚上 10 点
- 星期五:晚上 8.30 - 晚上 10.30
- 星期六:下午 3.30 - 5.30 和下午 6.30 - 8.30
- 周日:下午 3.30 - 晚上 7.30
我想我需要不止一行来实现它。
我当前的 crontab 如下所示:
COMMAND=curl -u user:password http://localhost/webapp/cache/build/openligadb >> /var/log/cron.log
# Tuesday + Wednesday 8pm - 10pm
# m h dom mon dow command
*/5 20-22 * * 2,3 $COMMAND
# Friday 8.30pm - 10.30pm
# m h dom mon dow command
*/5+30 20-22 * * 5 $COMMAND
# Saturday 3.30pm - 5.30pm and 6.30pm - 8.30pm
# m h dom mon dow command
*/5+30 15-17,18-20 * * 6 $COMMAND
# Sunday 3.30pm - 8.30pm
# m h dom mon dow command
*/5+30 15-20 * * 0 $COMMAND
我不知道如何测试/调试 cron 来查看我写的内容是否正确。
我猜目前它会每 5 分钟运行一次,如下所示:
- 星期二晚上 8 点 - 晚上 10 点
- 星期三晚上 8 点 - 晚上 10 点
- 星期五晚上 8.30 - 晚上 10 点(应该是晚上 10.30)
- 星期六下午 3.30 - 5pm(应该是 5.30pm)和 6.30pm - 8pm(应该是 8.30pm)
- 周日 3.30pm - 8pm(应该是 8.30pm)
【问题讨论】:
-
我建议 1) 设置
cron以每隔 5 分钟运行一次,并让脚本决定它是否在所需的窗口之外,如果不是则提前退出,或者 2) 设置 @ 987654323@ 在每个窗口开始时运行一次脚本,并将脚本调整为每五分钟循环一次以进行特定次数的迭代。尽管您的上述方法也应该有效,但如果您的日程安排发生变化,则更难调整... -
第一种方法对我来说似乎更干净且可以接受。