问题
I would like to run a cron job every 5 minutes in between these time span:
- Tuesday: 8pm - 10pm
- Wednesday: 8pm - 10pm
- Friday: 8.30pm - 10.30pm
- Saturday: 3.30pm - 5.30pm and 6.30pm - 8.30pm
- Sunday: 3.30pm - 7.30pm
I guess I need more than one line to realize it.
My current crontab looks like this:
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
I don't know how to test/debug cron to look if it's correct what I've written.
I guss currently it would run every 5 minutes as follows:
- Tuesday 8pm - 10pm
- Wednesday 8pm - 10pm
- Friday 8.30pm - 10pm (should be 10.30pm)
- Saturday 3.30pm - 5pm (should be 5.30pm) and 6.30pm - 8pm (should be 8.30pm)
- Sunday 3.30pm - 8pm (should be 8.30pm)
回答1:
There's nothing wrong with explicitly listing the times you need if there's no appropriate shortcut:
# 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
来源:https://stackoverflow.com/questions/27661809/run-cron-every-5-minutes-in-specific-time-span