How to create cron statement to run for multiple hours

41,136

Solution 1

You cannot, you can use either multiple values OR a range

0 1,2,3,4,5,6,7,8,10,11,12,13,14,15 * * *

Source:

Time tags are separated by spaces. Do not use spaces within a tag, this will confuse cron. All five tags must be present. They are a logical AND of each other. There is another space between the last time tag and the first command.

A time tag can be a wildcard "*", which means "all". It can be one value, several values, a range, or a fractional range.

Solution 2

I find it more readable to have two crontab entries:

0 1-8 * * * ...
0 10-15 * * * ...
Share:
41,136
Gnik
Author by

Gnik

Freelancer. Very passionate in code and software architecting. Always eager to take up the challenge and learn new technologies. Very quick learner and adaptive.

Updated on July 09, 2022

Comments

  • Gnik
    Gnik almost 2 years

    I need a cron statement to run for few hours eg 1-8 then 10-15. In this case will the following statement work,

    0 1-8,10-15 * * * 
    

    If not can anyone help me?

    Thanks in advance, Gnik

  • K Raphael
    K Raphael over 8 years
    +1. much cleaner/concise. downside is that if something in the command changes, you now have multiple places to edit it
  • eddy85br
    eddy85br almost 7 years
    you could use a bash script to encapsulate the parameters, Then, on crontab just call a single bash script for both entries.