是否可以想出一个在 2015 年 10 月 12 日 19:00 至 2015 年 10 月 13 日 07:00 之间每五分钟运行一次的 cron 表达式?
答案1
# Minute Hour Day of Month Month Day of Week Command
# (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat)
0,5,10,15,20,25,30,35,40,45,50,55 19,20,21,22,23 12 10 * command
0,5,10,15,20,25,30,35,40,45,50,55 0,1,2,3,4,5,6 13 10 * command
0 7 13 10 * command
答案2
嗯,不是一个,但我认为最接近:
*/5 19-23 12 10 * test $(date +%Y) -eq 2015 && /runme.sh
*/5 0-6 13 10 * test $(date +%Y) -eq 2015 && /runme.sh
0 7 13 10 * test $(date +%Y) -eq 2015 && /runme.sh
我的建议是将日期检查放入您的脚本(runme.sh)并简单地放入 crontab:
*/5 * 12-13 10 * /runme.sh
然后像这样启动 runme.sh:
#!/bin/bash
test $(date +%Y) -eq 2015 || exit 0
test $(date %d%H%M) -ge 121900 || exit 0
test $(date %d%H%M) -le 130700 || exit 0