在特定时间跨度内每5分钟运行一次cron

时间:2014-12-26 20:46:53

标签: cron crontab

我想在这些时间段之间每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 - 下午5:00(应该是下午5:30)和下午6:30 - 晚上8点(应该是晚上8:30)
  • 周日下午3:30 - 晚上8:00(应该是晚上8:30)

1 个答案:

答案 0 :(得分:3)

如果没有合适的快捷方式,明确列出您需要的时间没有错:

# Tuesday + Wednesday 8pm - 10pm
*/5     20-22       *   *   2,3 $COMMAND

# Friday 8.30pm - 10.30pm
30,35,40,45,50,55   20  *  *  5  $COMMAND
*/5                 21  *  *  5  $COMMAND
0,5,10,15,20,25,30  22  *  *  5  $COMMAND

# Saturday 3.30pm - 5.30pm and 6.30pm - 8.30pm
30,35,40,45,50,55   15,18  *  *  6  $COMMAND
*/5                 16,19  *  *  6  $COMMAND
0,5,10,15,20,25,30  17,20  *  *  6  $COMMAND

# Sunday 3.30pm - 8.30pm
30,35,40,45,50,55   15     *  *  0  $COMMAND
*/5                 16-19  *  *  0  $COMMAND
0,5,10,15,20,25,30  20     *  *  0  $COMMAND