Need to schedule a job every hour in jenkins












15














I'm New to Jenkins.
I have a job which i need to schedule every 1 hour.



I am using



* */1 * * * 


but it is not working effectively.



Please provide any other solution.










share|improve this question




















  • 2




    you should explain what "but it is not working effectively." means. And add in your distro & cronttab entries
    – Sathyajith Bhat
    May 8 '14 at 6:43










  • use @hourly or 0 * * * *
    – Renju Chandran chingath
    May 8 '14 at 7:42












  • Thanks. Please mention the syntax,if i want to schedule every 3 hours.
    – Ajay
    May 8 '14 at 12:06










  • Use: H/60 * * * *
    – Eyal Sooliman
    Sep 8 '16 at 9:05
















15














I'm New to Jenkins.
I have a job which i need to schedule every 1 hour.



I am using



* */1 * * * 


but it is not working effectively.



Please provide any other solution.










share|improve this question




















  • 2




    you should explain what "but it is not working effectively." means. And add in your distro & cronttab entries
    – Sathyajith Bhat
    May 8 '14 at 6:43










  • use @hourly or 0 * * * *
    – Renju Chandran chingath
    May 8 '14 at 7:42












  • Thanks. Please mention the syntax,if i want to schedule every 3 hours.
    – Ajay
    May 8 '14 at 12:06










  • Use: H/60 * * * *
    – Eyal Sooliman
    Sep 8 '16 at 9:05














15












15








15


3





I'm New to Jenkins.
I have a job which i need to schedule every 1 hour.



I am using



* */1 * * * 


but it is not working effectively.



Please provide any other solution.










share|improve this question















I'm New to Jenkins.
I have a job which i need to schedule every 1 hour.



I am using



* */1 * * * 


but it is not working effectively.



Please provide any other solution.







jenkins






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited May 8 '14 at 12:07

























asked May 8 '14 at 6:33









Ajay

81114




81114








  • 2




    you should explain what "but it is not working effectively." means. And add in your distro & cronttab entries
    – Sathyajith Bhat
    May 8 '14 at 6:43










  • use @hourly or 0 * * * *
    – Renju Chandran chingath
    May 8 '14 at 7:42












  • Thanks. Please mention the syntax,if i want to schedule every 3 hours.
    – Ajay
    May 8 '14 at 12:06










  • Use: H/60 * * * *
    – Eyal Sooliman
    Sep 8 '16 at 9:05














  • 2




    you should explain what "but it is not working effectively." means. And add in your distro & cronttab entries
    – Sathyajith Bhat
    May 8 '14 at 6:43










  • use @hourly or 0 * * * *
    – Renju Chandran chingath
    May 8 '14 at 7:42












  • Thanks. Please mention the syntax,if i want to schedule every 3 hours.
    – Ajay
    May 8 '14 at 12:06










  • Use: H/60 * * * *
    – Eyal Sooliman
    Sep 8 '16 at 9:05








2




2




you should explain what "but it is not working effectively." means. And add in your distro & cronttab entries
– Sathyajith Bhat
May 8 '14 at 6:43




you should explain what "but it is not working effectively." means. And add in your distro & cronttab entries
– Sathyajith Bhat
May 8 '14 at 6:43












use @hourly or 0 * * * *
– Renju Chandran chingath
May 8 '14 at 7:42






use @hourly or 0 * * * *
– Renju Chandran chingath
May 8 '14 at 7:42














Thanks. Please mention the syntax,if i want to schedule every 3 hours.
– Ajay
May 8 '14 at 12:06




Thanks. Please mention the syntax,if i want to schedule every 3 hours.
– Ajay
May 8 '14 at 12:06












Use: H/60 * * * *
– Eyal Sooliman
Sep 8 '16 at 9:05




Use: H/60 * * * *
– Eyal Sooliman
Sep 8 '16 at 9:05










5 Answers
5






active

oldest

votes


















29














Jenkins use cron expression as explained here



To schedule every hour, then you can put



0 * * * *


Then your job will be executed every hour (07:00, 08:00, 09:00 and so on)



UPDATE



As explanation on your original configuration, syntax



* */1 * * *


will executed job every minutes.



UPDATE 2



As requested in the comment, here syntax for schedule it every 3 hours



0 */3 * * *


The syntax */n means the jobs will scheduled every n hours






share|improve this answer























  • Thanks for the answer.It is working fine. But my job is taking more than one hour to execute. For instance if i want to schedule this job for every 3 hours what would be the syntax.please share.
    – Ajay
    May 8 '14 at 11:59












  • Check my updated answer :)
    – masegaloeh
    May 8 '14 at 12:15










  • @Ajay If this answer work for your problem, please consider to accept this answer :)
    – masegaloeh
    May 8 '14 at 15:06



















10














Jenkins suggests this way:



H * * * *





share|improve this answer



















  • 1




    Same answer as other answers to a question that is 1+ years old.
    – JakeGould
    Dec 14 '15 at 17:39










  • This duplicates another answer and adds no new content. Please don't post an answer unless you actually have something new to contribute.
    – DavidPostill
    Dec 15 '15 at 13:47






  • 4




    The advantage of this approach is that jenkins will manage the tasks in a queue. Maybe somebody else already had the answer but it is still useful. Why be so harsh if it is useful? the answer with 20 likes is NOT so good.... bah
    – juan Isaza
    Oct 21 '16 at 14:56










  • I have to go with @juanIsaza . This is not a duplicate but actually a better answer. Jenkins clearly suggests to prefer the usage of H instead of hardcoded values
    – derHugo
    Feb 15 '18 at 15:47



















5














I know this is an old thread but I'm answering because apparently people still land here.



The top answer shouldn't be used anymore.



Jenkins introduced a value H.




This field follows the syntax of cron (with minor differences).
Specifically, each line consists of 5 fields separated by TAB or
whitespace:



MINUTE HOUR DOM MONTH DOW




  • MINUTE Minutes within the hour (0–59)

  • HOUR The hour of the day (0–23)

  • DOM The day of the month (1–31)

  • MONTH The month (1–12)

  • DOW The day of the week (0–7) where 0 and 7 are Sunday.


To specify multiple values for one field, the following operators are
available. In the order of precedence,





  • * specifies all valid values


  • M-N specifies a range of values


  • M-N/X or */X steps by intervals of X through the specified range or whole valid range


  • A,B,...,Z enumerates multiple values


To allow periodically scheduled tasks to produce even load on the
system, the symbol H (for “hash”) should be used wherever possible.
For example, using 0 0 * * * for a dozen daily jobs will cause a large
spike at midnight. In contrast, using H H * * * would still execute
each job once a day, but not all at the same time, better using
limited resources.



The H symbol can be used with a range. For example, H H(0-7) * * *
means some time between 12:00 AM (midnight) to 7:59 AM. You can also
use step intervals with H, with or without ranges.



The H symbol can be thought of as a random value over a range, but it
actually is a hash of the job name, not a random function, so that the
value remains stable for any given project.



Beware that for the day of month field, short cycles such as */3 or
H/3 will not work consistently near the end of most months, due to
variable month lengths. For example, */3 will run on the 1st, 4th,
…31st days of a long month, then again the next day of the next month.
Hashes are always chosen in the 1-28 range, so H/3 will produce a gap
between runs of between 3 and 6 days at the end of a month. (Longer
cycles will also have inconsistent lengths but the effect may be
relatively less noticeable.)




So the correct answer for building once an hour is



H * * * *


for every 3 hours



H H/3 * * *




The difference between * and H could be also explained as





  • * translates to EVERY


  • H translates to ANY


So e.g.



* * * * *


translates to: Build every minute, every hour, every day of month, every month, doesn't matter what day of week it is.



H * * * *


translates to: Build once every hour (x), doesn't matter what exact minute it is (can be any minute between x:00 and x:59)



H H * * *


translates to: Build once every day, doesn't matter what time it is (can be any minute and any hour between 00:00 and 23:59)





The reason why you should prefer using H instead of hardcoded time values is also explained as before



If you have 100 jobs configured with



0 0 * * *


they all will try to start at the same time causing for example a lot of poll and pull traffic at midnight.



If you have them instead all configured with



H H * * *


they all will be built once a day but not all at the same time but distributed over the day. You can than plan the schdedule better by using the time ranges e.g.



H H(18-23) * * *


All jobs will be built every day at any time between 18:00 and 23:59.





It is even also possible to schedule jobs crossing midnight e.g. to build between 19:00pm and 5:00am.



But since cron usually doesn't allow this you can use a trick using a shiftet timezone.



E.g. I'm living in the timezone MEZ which is GMT+1 and I want to build all jobs between 19:00pm and 5:00am. In order to do that I shift my complete timezone by 5 hours using



 TZ=Etc/GMT+6


Than I use a shiftet range for the hours starting at 14:00 (-> +5 = 19:00pm) and ending at 23:59 (-> +5 = 4:59am)



H H(14-23) * * *





share|improve this answer































    -1














    * */1 * * *


    is correct it runs every hour



    Try using H function so that all job does not poll at same time to svn



    H H/1 * * *


    It should do magic. If job takes more time to finish or you are doing build trigger functionality. Either increase time or use jenkins pluggin to stop build until previous build is finished.



    https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin






    share|improve this answer























    • The first one runs every minutes between 1:00 am and 2:00 am, right?
      – Eric Wang
      Dec 22 '17 at 2:16










    • @EricWang : No. It is the same as * * * * * => running every minute. For running in between a certain range you use it like * 1-2 * * * <- this runs every minute between 1:00am and 1:59am
      – derHugo
      Feb 15 '18 at 15:52












    • @derHugo You mean * * 1-2 * * ?
      – Eric Wang
      Feb 16 '18 at 4:01






    • 1




      @EricWang No I mean * 1-2 * * *. The first position is for Minute of our, the second one for hour of day, the third one day of month, fourth month of year and fifth day of week (in special cases it also allows a sixth one year). So your line * * 1-2 * * translates "Every Minute, Every hour, the first and second day of every month and any day of week.
      – derHugo
      Feb 16 '18 at 7:08








    • 1




      The difference which the author of this answer missed is that * translates to every while H translates to any. So while * * * * * means every minute, H * * * * means build once every hour but I don't care the exact minute (can be anywhere between 0-59 if not defined by a range) and H H * * * means build once per day but I don't care what time.
      – derHugo
      Feb 16 '18 at 7:15



















    -5














    The syntax is :





    MINUTE  Minutes within the hour (0-59)
    HOUR The hour of the day (0-23)
    DOM The day of the month (1-31)
    MONTH The month (1-12)
    DOW The day of the week (0-7) where 0 and 7 are Sunday.


    If you want to schedule for every 3 hours,
    the syntax should look:



    * 3 * * * *





    share|improve this answer



















    • 4




      This will schedule for 3 AM every day, and not every 3 hour
      – lony
      Jun 30 '15 at 12:38










    protected by JakeGould Dec 14 '15 at 17:39



    Thank you for your interest in this question.
    Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).



    Would you like to answer one of these unanswered questions instead?














    5 Answers
    5






    active

    oldest

    votes








    5 Answers
    5






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    29














    Jenkins use cron expression as explained here



    To schedule every hour, then you can put



    0 * * * *


    Then your job will be executed every hour (07:00, 08:00, 09:00 and so on)



    UPDATE



    As explanation on your original configuration, syntax



    * */1 * * *


    will executed job every minutes.



    UPDATE 2



    As requested in the comment, here syntax for schedule it every 3 hours



    0 */3 * * *


    The syntax */n means the jobs will scheduled every n hours






    share|improve this answer























    • Thanks for the answer.It is working fine. But my job is taking more than one hour to execute. For instance if i want to schedule this job for every 3 hours what would be the syntax.please share.
      – Ajay
      May 8 '14 at 11:59












    • Check my updated answer :)
      – masegaloeh
      May 8 '14 at 12:15










    • @Ajay If this answer work for your problem, please consider to accept this answer :)
      – masegaloeh
      May 8 '14 at 15:06
















    29














    Jenkins use cron expression as explained here



    To schedule every hour, then you can put



    0 * * * *


    Then your job will be executed every hour (07:00, 08:00, 09:00 and so on)



    UPDATE



    As explanation on your original configuration, syntax



    * */1 * * *


    will executed job every minutes.



    UPDATE 2



    As requested in the comment, here syntax for schedule it every 3 hours



    0 */3 * * *


    The syntax */n means the jobs will scheduled every n hours






    share|improve this answer























    • Thanks for the answer.It is working fine. But my job is taking more than one hour to execute. For instance if i want to schedule this job for every 3 hours what would be the syntax.please share.
      – Ajay
      May 8 '14 at 11:59












    • Check my updated answer :)
      – masegaloeh
      May 8 '14 at 12:15










    • @Ajay If this answer work for your problem, please consider to accept this answer :)
      – masegaloeh
      May 8 '14 at 15:06














    29












    29








    29






    Jenkins use cron expression as explained here



    To schedule every hour, then you can put



    0 * * * *


    Then your job will be executed every hour (07:00, 08:00, 09:00 and so on)



    UPDATE



    As explanation on your original configuration, syntax



    * */1 * * *


    will executed job every minutes.



    UPDATE 2



    As requested in the comment, here syntax for schedule it every 3 hours



    0 */3 * * *


    The syntax */n means the jobs will scheduled every n hours






    share|improve this answer














    Jenkins use cron expression as explained here



    To schedule every hour, then you can put



    0 * * * *


    Then your job will be executed every hour (07:00, 08:00, 09:00 and so on)



    UPDATE



    As explanation on your original configuration, syntax



    * */1 * * *


    will executed job every minutes.



    UPDATE 2



    As requested in the comment, here syntax for schedule it every 3 hours



    0 */3 * * *


    The syntax */n means the jobs will scheduled every n hours







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited May 8 '14 at 12:15

























    answered May 8 '14 at 6:43









    masegaloeh

    817615




    817615












    • Thanks for the answer.It is working fine. But my job is taking more than one hour to execute. For instance if i want to schedule this job for every 3 hours what would be the syntax.please share.
      – Ajay
      May 8 '14 at 11:59












    • Check my updated answer :)
      – masegaloeh
      May 8 '14 at 12:15










    • @Ajay If this answer work for your problem, please consider to accept this answer :)
      – masegaloeh
      May 8 '14 at 15:06


















    • Thanks for the answer.It is working fine. But my job is taking more than one hour to execute. For instance if i want to schedule this job for every 3 hours what would be the syntax.please share.
      – Ajay
      May 8 '14 at 11:59












    • Check my updated answer :)
      – masegaloeh
      May 8 '14 at 12:15










    • @Ajay If this answer work for your problem, please consider to accept this answer :)
      – masegaloeh
      May 8 '14 at 15:06
















    Thanks for the answer.It is working fine. But my job is taking more than one hour to execute. For instance if i want to schedule this job for every 3 hours what would be the syntax.please share.
    – Ajay
    May 8 '14 at 11:59






    Thanks for the answer.It is working fine. But my job is taking more than one hour to execute. For instance if i want to schedule this job for every 3 hours what would be the syntax.please share.
    – Ajay
    May 8 '14 at 11:59














    Check my updated answer :)
    – masegaloeh
    May 8 '14 at 12:15




    Check my updated answer :)
    – masegaloeh
    May 8 '14 at 12:15












    @Ajay If this answer work for your problem, please consider to accept this answer :)
    – masegaloeh
    May 8 '14 at 15:06




    @Ajay If this answer work for your problem, please consider to accept this answer :)
    – masegaloeh
    May 8 '14 at 15:06













    10














    Jenkins suggests this way:



    H * * * *





    share|improve this answer



















    • 1




      Same answer as other answers to a question that is 1+ years old.
      – JakeGould
      Dec 14 '15 at 17:39










    • This duplicates another answer and adds no new content. Please don't post an answer unless you actually have something new to contribute.
      – DavidPostill
      Dec 15 '15 at 13:47






    • 4




      The advantage of this approach is that jenkins will manage the tasks in a queue. Maybe somebody else already had the answer but it is still useful. Why be so harsh if it is useful? the answer with 20 likes is NOT so good.... bah
      – juan Isaza
      Oct 21 '16 at 14:56










    • I have to go with @juanIsaza . This is not a duplicate but actually a better answer. Jenkins clearly suggests to prefer the usage of H instead of hardcoded values
      – derHugo
      Feb 15 '18 at 15:47
















    10














    Jenkins suggests this way:



    H * * * *





    share|improve this answer



















    • 1




      Same answer as other answers to a question that is 1+ years old.
      – JakeGould
      Dec 14 '15 at 17:39










    • This duplicates another answer and adds no new content. Please don't post an answer unless you actually have something new to contribute.
      – DavidPostill
      Dec 15 '15 at 13:47






    • 4




      The advantage of this approach is that jenkins will manage the tasks in a queue. Maybe somebody else already had the answer but it is still useful. Why be so harsh if it is useful? the answer with 20 likes is NOT so good.... bah
      – juan Isaza
      Oct 21 '16 at 14:56










    • I have to go with @juanIsaza . This is not a duplicate but actually a better answer. Jenkins clearly suggests to prefer the usage of H instead of hardcoded values
      – derHugo
      Feb 15 '18 at 15:47














    10












    10








    10






    Jenkins suggests this way:



    H * * * *





    share|improve this answer














    Jenkins suggests this way:



    H * * * *






    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Dec 14 '15 at 20:16









    Excellll

    11.1k74162




    11.1k74162










    answered Dec 14 '15 at 17:32









    Ruby232

    11112




    11112








    • 1




      Same answer as other answers to a question that is 1+ years old.
      – JakeGould
      Dec 14 '15 at 17:39










    • This duplicates another answer and adds no new content. Please don't post an answer unless you actually have something new to contribute.
      – DavidPostill
      Dec 15 '15 at 13:47






    • 4




      The advantage of this approach is that jenkins will manage the tasks in a queue. Maybe somebody else already had the answer but it is still useful. Why be so harsh if it is useful? the answer with 20 likes is NOT so good.... bah
      – juan Isaza
      Oct 21 '16 at 14:56










    • I have to go with @juanIsaza . This is not a duplicate but actually a better answer. Jenkins clearly suggests to prefer the usage of H instead of hardcoded values
      – derHugo
      Feb 15 '18 at 15:47














    • 1




      Same answer as other answers to a question that is 1+ years old.
      – JakeGould
      Dec 14 '15 at 17:39










    • This duplicates another answer and adds no new content. Please don't post an answer unless you actually have something new to contribute.
      – DavidPostill
      Dec 15 '15 at 13:47






    • 4




      The advantage of this approach is that jenkins will manage the tasks in a queue. Maybe somebody else already had the answer but it is still useful. Why be so harsh if it is useful? the answer with 20 likes is NOT so good.... bah
      – juan Isaza
      Oct 21 '16 at 14:56










    • I have to go with @juanIsaza . This is not a duplicate but actually a better answer. Jenkins clearly suggests to prefer the usage of H instead of hardcoded values
      – derHugo
      Feb 15 '18 at 15:47








    1




    1




    Same answer as other answers to a question that is 1+ years old.
    – JakeGould
    Dec 14 '15 at 17:39




    Same answer as other answers to a question that is 1+ years old.
    – JakeGould
    Dec 14 '15 at 17:39












    This duplicates another answer and adds no new content. Please don't post an answer unless you actually have something new to contribute.
    – DavidPostill
    Dec 15 '15 at 13:47




    This duplicates another answer and adds no new content. Please don't post an answer unless you actually have something new to contribute.
    – DavidPostill
    Dec 15 '15 at 13:47




    4




    4




    The advantage of this approach is that jenkins will manage the tasks in a queue. Maybe somebody else already had the answer but it is still useful. Why be so harsh if it is useful? the answer with 20 likes is NOT so good.... bah
    – juan Isaza
    Oct 21 '16 at 14:56




    The advantage of this approach is that jenkins will manage the tasks in a queue. Maybe somebody else already had the answer but it is still useful. Why be so harsh if it is useful? the answer with 20 likes is NOT so good.... bah
    – juan Isaza
    Oct 21 '16 at 14:56












    I have to go with @juanIsaza . This is not a duplicate but actually a better answer. Jenkins clearly suggests to prefer the usage of H instead of hardcoded values
    – derHugo
    Feb 15 '18 at 15:47




    I have to go with @juanIsaza . This is not a duplicate but actually a better answer. Jenkins clearly suggests to prefer the usage of H instead of hardcoded values
    – derHugo
    Feb 15 '18 at 15:47











    5














    I know this is an old thread but I'm answering because apparently people still land here.



    The top answer shouldn't be used anymore.



    Jenkins introduced a value H.




    This field follows the syntax of cron (with minor differences).
    Specifically, each line consists of 5 fields separated by TAB or
    whitespace:



    MINUTE HOUR DOM MONTH DOW




    • MINUTE Minutes within the hour (0–59)

    • HOUR The hour of the day (0–23)

    • DOM The day of the month (1–31)

    • MONTH The month (1–12)

    • DOW The day of the week (0–7) where 0 and 7 are Sunday.


    To specify multiple values for one field, the following operators are
    available. In the order of precedence,





    • * specifies all valid values


    • M-N specifies a range of values


    • M-N/X or */X steps by intervals of X through the specified range or whole valid range


    • A,B,...,Z enumerates multiple values


    To allow periodically scheduled tasks to produce even load on the
    system, the symbol H (for “hash”) should be used wherever possible.
    For example, using 0 0 * * * for a dozen daily jobs will cause a large
    spike at midnight. In contrast, using H H * * * would still execute
    each job once a day, but not all at the same time, better using
    limited resources.



    The H symbol can be used with a range. For example, H H(0-7) * * *
    means some time between 12:00 AM (midnight) to 7:59 AM. You can also
    use step intervals with H, with or without ranges.



    The H symbol can be thought of as a random value over a range, but it
    actually is a hash of the job name, not a random function, so that the
    value remains stable for any given project.



    Beware that for the day of month field, short cycles such as */3 or
    H/3 will not work consistently near the end of most months, due to
    variable month lengths. For example, */3 will run on the 1st, 4th,
    …31st days of a long month, then again the next day of the next month.
    Hashes are always chosen in the 1-28 range, so H/3 will produce a gap
    between runs of between 3 and 6 days at the end of a month. (Longer
    cycles will also have inconsistent lengths but the effect may be
    relatively less noticeable.)




    So the correct answer for building once an hour is



    H * * * *


    for every 3 hours



    H H/3 * * *




    The difference between * and H could be also explained as





    • * translates to EVERY


    • H translates to ANY


    So e.g.



    * * * * *


    translates to: Build every minute, every hour, every day of month, every month, doesn't matter what day of week it is.



    H * * * *


    translates to: Build once every hour (x), doesn't matter what exact minute it is (can be any minute between x:00 and x:59)



    H H * * *


    translates to: Build once every day, doesn't matter what time it is (can be any minute and any hour between 00:00 and 23:59)





    The reason why you should prefer using H instead of hardcoded time values is also explained as before



    If you have 100 jobs configured with



    0 0 * * *


    they all will try to start at the same time causing for example a lot of poll and pull traffic at midnight.



    If you have them instead all configured with



    H H * * *


    they all will be built once a day but not all at the same time but distributed over the day. You can than plan the schdedule better by using the time ranges e.g.



    H H(18-23) * * *


    All jobs will be built every day at any time between 18:00 and 23:59.





    It is even also possible to schedule jobs crossing midnight e.g. to build between 19:00pm and 5:00am.



    But since cron usually doesn't allow this you can use a trick using a shiftet timezone.



    E.g. I'm living in the timezone MEZ which is GMT+1 and I want to build all jobs between 19:00pm and 5:00am. In order to do that I shift my complete timezone by 5 hours using



     TZ=Etc/GMT+6


    Than I use a shiftet range for the hours starting at 14:00 (-> +5 = 19:00pm) and ending at 23:59 (-> +5 = 4:59am)



    H H(14-23) * * *





    share|improve this answer




























      5














      I know this is an old thread but I'm answering because apparently people still land here.



      The top answer shouldn't be used anymore.



      Jenkins introduced a value H.




      This field follows the syntax of cron (with minor differences).
      Specifically, each line consists of 5 fields separated by TAB or
      whitespace:



      MINUTE HOUR DOM MONTH DOW




      • MINUTE Minutes within the hour (0–59)

      • HOUR The hour of the day (0–23)

      • DOM The day of the month (1–31)

      • MONTH The month (1–12)

      • DOW The day of the week (0–7) where 0 and 7 are Sunday.


      To specify multiple values for one field, the following operators are
      available. In the order of precedence,





      • * specifies all valid values


      • M-N specifies a range of values


      • M-N/X or */X steps by intervals of X through the specified range or whole valid range


      • A,B,...,Z enumerates multiple values


      To allow periodically scheduled tasks to produce even load on the
      system, the symbol H (for “hash”) should be used wherever possible.
      For example, using 0 0 * * * for a dozen daily jobs will cause a large
      spike at midnight. In contrast, using H H * * * would still execute
      each job once a day, but not all at the same time, better using
      limited resources.



      The H symbol can be used with a range. For example, H H(0-7) * * *
      means some time between 12:00 AM (midnight) to 7:59 AM. You can also
      use step intervals with H, with or without ranges.



      The H symbol can be thought of as a random value over a range, but it
      actually is a hash of the job name, not a random function, so that the
      value remains stable for any given project.



      Beware that for the day of month field, short cycles such as */3 or
      H/3 will not work consistently near the end of most months, due to
      variable month lengths. For example, */3 will run on the 1st, 4th,
      …31st days of a long month, then again the next day of the next month.
      Hashes are always chosen in the 1-28 range, so H/3 will produce a gap
      between runs of between 3 and 6 days at the end of a month. (Longer
      cycles will also have inconsistent lengths but the effect may be
      relatively less noticeable.)




      So the correct answer for building once an hour is



      H * * * *


      for every 3 hours



      H H/3 * * *




      The difference between * and H could be also explained as





      • * translates to EVERY


      • H translates to ANY


      So e.g.



      * * * * *


      translates to: Build every minute, every hour, every day of month, every month, doesn't matter what day of week it is.



      H * * * *


      translates to: Build once every hour (x), doesn't matter what exact minute it is (can be any minute between x:00 and x:59)



      H H * * *


      translates to: Build once every day, doesn't matter what time it is (can be any minute and any hour between 00:00 and 23:59)





      The reason why you should prefer using H instead of hardcoded time values is also explained as before



      If you have 100 jobs configured with



      0 0 * * *


      they all will try to start at the same time causing for example a lot of poll and pull traffic at midnight.



      If you have them instead all configured with



      H H * * *


      they all will be built once a day but not all at the same time but distributed over the day. You can than plan the schdedule better by using the time ranges e.g.



      H H(18-23) * * *


      All jobs will be built every day at any time between 18:00 and 23:59.





      It is even also possible to schedule jobs crossing midnight e.g. to build between 19:00pm and 5:00am.



      But since cron usually doesn't allow this you can use a trick using a shiftet timezone.



      E.g. I'm living in the timezone MEZ which is GMT+1 and I want to build all jobs between 19:00pm and 5:00am. In order to do that I shift my complete timezone by 5 hours using



       TZ=Etc/GMT+6


      Than I use a shiftet range for the hours starting at 14:00 (-> +5 = 19:00pm) and ending at 23:59 (-> +5 = 4:59am)



      H H(14-23) * * *





      share|improve this answer


























        5












        5








        5






        I know this is an old thread but I'm answering because apparently people still land here.



        The top answer shouldn't be used anymore.



        Jenkins introduced a value H.




        This field follows the syntax of cron (with minor differences).
        Specifically, each line consists of 5 fields separated by TAB or
        whitespace:



        MINUTE HOUR DOM MONTH DOW




        • MINUTE Minutes within the hour (0–59)

        • HOUR The hour of the day (0–23)

        • DOM The day of the month (1–31)

        • MONTH The month (1–12)

        • DOW The day of the week (0–7) where 0 and 7 are Sunday.


        To specify multiple values for one field, the following operators are
        available. In the order of precedence,





        • * specifies all valid values


        • M-N specifies a range of values


        • M-N/X or */X steps by intervals of X through the specified range or whole valid range


        • A,B,...,Z enumerates multiple values


        To allow periodically scheduled tasks to produce even load on the
        system, the symbol H (for “hash”) should be used wherever possible.
        For example, using 0 0 * * * for a dozen daily jobs will cause a large
        spike at midnight. In contrast, using H H * * * would still execute
        each job once a day, but not all at the same time, better using
        limited resources.



        The H symbol can be used with a range. For example, H H(0-7) * * *
        means some time between 12:00 AM (midnight) to 7:59 AM. You can also
        use step intervals with H, with or without ranges.



        The H symbol can be thought of as a random value over a range, but it
        actually is a hash of the job name, not a random function, so that the
        value remains stable for any given project.



        Beware that for the day of month field, short cycles such as */3 or
        H/3 will not work consistently near the end of most months, due to
        variable month lengths. For example, */3 will run on the 1st, 4th,
        …31st days of a long month, then again the next day of the next month.
        Hashes are always chosen in the 1-28 range, so H/3 will produce a gap
        between runs of between 3 and 6 days at the end of a month. (Longer
        cycles will also have inconsistent lengths but the effect may be
        relatively less noticeable.)




        So the correct answer for building once an hour is



        H * * * *


        for every 3 hours



        H H/3 * * *




        The difference between * and H could be also explained as





        • * translates to EVERY


        • H translates to ANY


        So e.g.



        * * * * *


        translates to: Build every minute, every hour, every day of month, every month, doesn't matter what day of week it is.



        H * * * *


        translates to: Build once every hour (x), doesn't matter what exact minute it is (can be any minute between x:00 and x:59)



        H H * * *


        translates to: Build once every day, doesn't matter what time it is (can be any minute and any hour between 00:00 and 23:59)





        The reason why you should prefer using H instead of hardcoded time values is also explained as before



        If you have 100 jobs configured with



        0 0 * * *


        they all will try to start at the same time causing for example a lot of poll and pull traffic at midnight.



        If you have them instead all configured with



        H H * * *


        they all will be built once a day but not all at the same time but distributed over the day. You can than plan the schdedule better by using the time ranges e.g.



        H H(18-23) * * *


        All jobs will be built every day at any time between 18:00 and 23:59.





        It is even also possible to schedule jobs crossing midnight e.g. to build between 19:00pm and 5:00am.



        But since cron usually doesn't allow this you can use a trick using a shiftet timezone.



        E.g. I'm living in the timezone MEZ which is GMT+1 and I want to build all jobs between 19:00pm and 5:00am. In order to do that I shift my complete timezone by 5 hours using



         TZ=Etc/GMT+6


        Than I use a shiftet range for the hours starting at 14:00 (-> +5 = 19:00pm) and ending at 23:59 (-> +5 = 4:59am)



        H H(14-23) * * *





        share|improve this answer














        I know this is an old thread but I'm answering because apparently people still land here.



        The top answer shouldn't be used anymore.



        Jenkins introduced a value H.




        This field follows the syntax of cron (with minor differences).
        Specifically, each line consists of 5 fields separated by TAB or
        whitespace:



        MINUTE HOUR DOM MONTH DOW




        • MINUTE Minutes within the hour (0–59)

        • HOUR The hour of the day (0–23)

        • DOM The day of the month (1–31)

        • MONTH The month (1–12)

        • DOW The day of the week (0–7) where 0 and 7 are Sunday.


        To specify multiple values for one field, the following operators are
        available. In the order of precedence,





        • * specifies all valid values


        • M-N specifies a range of values


        • M-N/X or */X steps by intervals of X through the specified range or whole valid range


        • A,B,...,Z enumerates multiple values


        To allow periodically scheduled tasks to produce even load on the
        system, the symbol H (for “hash”) should be used wherever possible.
        For example, using 0 0 * * * for a dozen daily jobs will cause a large
        spike at midnight. In contrast, using H H * * * would still execute
        each job once a day, but not all at the same time, better using
        limited resources.



        The H symbol can be used with a range. For example, H H(0-7) * * *
        means some time between 12:00 AM (midnight) to 7:59 AM. You can also
        use step intervals with H, with or without ranges.



        The H symbol can be thought of as a random value over a range, but it
        actually is a hash of the job name, not a random function, so that the
        value remains stable for any given project.



        Beware that for the day of month field, short cycles such as */3 or
        H/3 will not work consistently near the end of most months, due to
        variable month lengths. For example, */3 will run on the 1st, 4th,
        …31st days of a long month, then again the next day of the next month.
        Hashes are always chosen in the 1-28 range, so H/3 will produce a gap
        between runs of between 3 and 6 days at the end of a month. (Longer
        cycles will also have inconsistent lengths but the effect may be
        relatively less noticeable.)




        So the correct answer for building once an hour is



        H * * * *


        for every 3 hours



        H H/3 * * *




        The difference between * and H could be also explained as





        • * translates to EVERY


        • H translates to ANY


        So e.g.



        * * * * *


        translates to: Build every minute, every hour, every day of month, every month, doesn't matter what day of week it is.



        H * * * *


        translates to: Build once every hour (x), doesn't matter what exact minute it is (can be any minute between x:00 and x:59)



        H H * * *


        translates to: Build once every day, doesn't matter what time it is (can be any minute and any hour between 00:00 and 23:59)





        The reason why you should prefer using H instead of hardcoded time values is also explained as before



        If you have 100 jobs configured with



        0 0 * * *


        they all will try to start at the same time causing for example a lot of poll and pull traffic at midnight.



        If you have them instead all configured with



        H H * * *


        they all will be built once a day but not all at the same time but distributed over the day. You can than plan the schdedule better by using the time ranges e.g.



        H H(18-23) * * *


        All jobs will be built every day at any time between 18:00 and 23:59.





        It is even also possible to schedule jobs crossing midnight e.g. to build between 19:00pm and 5:00am.



        But since cron usually doesn't allow this you can use a trick using a shiftet timezone.



        E.g. I'm living in the timezone MEZ which is GMT+1 and I want to build all jobs between 19:00pm and 5:00am. In order to do that I shift my complete timezone by 5 hours using



         TZ=Etc/GMT+6


        Than I use a shiftet range for the hours starting at 14:00 (-> +5 = 19:00pm) and ending at 23:59 (-> +5 = 4:59am)



        H H(14-23) * * *






        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited 2 days ago

























        answered Feb 16 '18 at 9:46









        derHugo

        18119




        18119























            -1














            * */1 * * *


            is correct it runs every hour



            Try using H function so that all job does not poll at same time to svn



            H H/1 * * *


            It should do magic. If job takes more time to finish or you are doing build trigger functionality. Either increase time or use jenkins pluggin to stop build until previous build is finished.



            https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin






            share|improve this answer























            • The first one runs every minutes between 1:00 am and 2:00 am, right?
              – Eric Wang
              Dec 22 '17 at 2:16










            • @EricWang : No. It is the same as * * * * * => running every minute. For running in between a certain range you use it like * 1-2 * * * <- this runs every minute between 1:00am and 1:59am
              – derHugo
              Feb 15 '18 at 15:52












            • @derHugo You mean * * 1-2 * * ?
              – Eric Wang
              Feb 16 '18 at 4:01






            • 1




              @EricWang No I mean * 1-2 * * *. The first position is for Minute of our, the second one for hour of day, the third one day of month, fourth month of year and fifth day of week (in special cases it also allows a sixth one year). So your line * * 1-2 * * translates "Every Minute, Every hour, the first and second day of every month and any day of week.
              – derHugo
              Feb 16 '18 at 7:08








            • 1




              The difference which the author of this answer missed is that * translates to every while H translates to any. So while * * * * * means every minute, H * * * * means build once every hour but I don't care the exact minute (can be anywhere between 0-59 if not defined by a range) and H H * * * means build once per day but I don't care what time.
              – derHugo
              Feb 16 '18 at 7:15
















            -1














            * */1 * * *


            is correct it runs every hour



            Try using H function so that all job does not poll at same time to svn



            H H/1 * * *


            It should do magic. If job takes more time to finish or you are doing build trigger functionality. Either increase time or use jenkins pluggin to stop build until previous build is finished.



            https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin






            share|improve this answer























            • The first one runs every minutes between 1:00 am and 2:00 am, right?
              – Eric Wang
              Dec 22 '17 at 2:16










            • @EricWang : No. It is the same as * * * * * => running every minute. For running in between a certain range you use it like * 1-2 * * * <- this runs every minute between 1:00am and 1:59am
              – derHugo
              Feb 15 '18 at 15:52












            • @derHugo You mean * * 1-2 * * ?
              – Eric Wang
              Feb 16 '18 at 4:01






            • 1




              @EricWang No I mean * 1-2 * * *. The first position is for Minute of our, the second one for hour of day, the third one day of month, fourth month of year and fifth day of week (in special cases it also allows a sixth one year). So your line * * 1-2 * * translates "Every Minute, Every hour, the first and second day of every month and any day of week.
              – derHugo
              Feb 16 '18 at 7:08








            • 1




              The difference which the author of this answer missed is that * translates to every while H translates to any. So while * * * * * means every minute, H * * * * means build once every hour but I don't care the exact minute (can be anywhere between 0-59 if not defined by a range) and H H * * * means build once per day but I don't care what time.
              – derHugo
              Feb 16 '18 at 7:15














            -1












            -1








            -1






            * */1 * * *


            is correct it runs every hour



            Try using H function so that all job does not poll at same time to svn



            H H/1 * * *


            It should do magic. If job takes more time to finish or you are doing build trigger functionality. Either increase time or use jenkins pluggin to stop build until previous build is finished.



            https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin






            share|improve this answer














            * */1 * * *


            is correct it runs every hour



            Try using H function so that all job does not poll at same time to svn



            H H/1 * * *


            It should do magic. If job takes more time to finish or you are doing build trigger functionality. Either increase time or use jenkins pluggin to stop build until previous build is finished.



            https://wiki.jenkins-ci.org/display/JENKINS/Build+Blocker+Plugin







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Sep 30 '15 at 14:09









            Sami Kuhmonen

            1,50211022




            1,50211022










            answered Sep 30 '15 at 5:21









            jin T

            109




            109












            • The first one runs every minutes between 1:00 am and 2:00 am, right?
              – Eric Wang
              Dec 22 '17 at 2:16










            • @EricWang : No. It is the same as * * * * * => running every minute. For running in between a certain range you use it like * 1-2 * * * <- this runs every minute between 1:00am and 1:59am
              – derHugo
              Feb 15 '18 at 15:52












            • @derHugo You mean * * 1-2 * * ?
              – Eric Wang
              Feb 16 '18 at 4:01






            • 1




              @EricWang No I mean * 1-2 * * *. The first position is for Minute of our, the second one for hour of day, the third one day of month, fourth month of year and fifth day of week (in special cases it also allows a sixth one year). So your line * * 1-2 * * translates "Every Minute, Every hour, the first and second day of every month and any day of week.
              – derHugo
              Feb 16 '18 at 7:08








            • 1




              The difference which the author of this answer missed is that * translates to every while H translates to any. So while * * * * * means every minute, H * * * * means build once every hour but I don't care the exact minute (can be anywhere between 0-59 if not defined by a range) and H H * * * means build once per day but I don't care what time.
              – derHugo
              Feb 16 '18 at 7:15


















            • The first one runs every minutes between 1:00 am and 2:00 am, right?
              – Eric Wang
              Dec 22 '17 at 2:16










            • @EricWang : No. It is the same as * * * * * => running every minute. For running in between a certain range you use it like * 1-2 * * * <- this runs every minute between 1:00am and 1:59am
              – derHugo
              Feb 15 '18 at 15:52












            • @derHugo You mean * * 1-2 * * ?
              – Eric Wang
              Feb 16 '18 at 4:01






            • 1




              @EricWang No I mean * 1-2 * * *. The first position is for Minute of our, the second one for hour of day, the third one day of month, fourth month of year and fifth day of week (in special cases it also allows a sixth one year). So your line * * 1-2 * * translates "Every Minute, Every hour, the first and second day of every month and any day of week.
              – derHugo
              Feb 16 '18 at 7:08








            • 1




              The difference which the author of this answer missed is that * translates to every while H translates to any. So while * * * * * means every minute, H * * * * means build once every hour but I don't care the exact minute (can be anywhere between 0-59 if not defined by a range) and H H * * * means build once per day but I don't care what time.
              – derHugo
              Feb 16 '18 at 7:15
















            The first one runs every minutes between 1:00 am and 2:00 am, right?
            – Eric Wang
            Dec 22 '17 at 2:16




            The first one runs every minutes between 1:00 am and 2:00 am, right?
            – Eric Wang
            Dec 22 '17 at 2:16












            @EricWang : No. It is the same as * * * * * => running every minute. For running in between a certain range you use it like * 1-2 * * * <- this runs every minute between 1:00am and 1:59am
            – derHugo
            Feb 15 '18 at 15:52






            @EricWang : No. It is the same as * * * * * => running every minute. For running in between a certain range you use it like * 1-2 * * * <- this runs every minute between 1:00am and 1:59am
            – derHugo
            Feb 15 '18 at 15:52














            @derHugo You mean * * 1-2 * * ?
            – Eric Wang
            Feb 16 '18 at 4:01




            @derHugo You mean * * 1-2 * * ?
            – Eric Wang
            Feb 16 '18 at 4:01




            1




            1




            @EricWang No I mean * 1-2 * * *. The first position is for Minute of our, the second one for hour of day, the third one day of month, fourth month of year and fifth day of week (in special cases it also allows a sixth one year). So your line * * 1-2 * * translates "Every Minute, Every hour, the first and second day of every month and any day of week.
            – derHugo
            Feb 16 '18 at 7:08






            @EricWang No I mean * 1-2 * * *. The first position is for Minute of our, the second one for hour of day, the third one day of month, fourth month of year and fifth day of week (in special cases it also allows a sixth one year). So your line * * 1-2 * * translates "Every Minute, Every hour, the first and second day of every month and any day of week.
            – derHugo
            Feb 16 '18 at 7:08






            1




            1




            The difference which the author of this answer missed is that * translates to every while H translates to any. So while * * * * * means every minute, H * * * * means build once every hour but I don't care the exact minute (can be anywhere between 0-59 if not defined by a range) and H H * * * means build once per day but I don't care what time.
            – derHugo
            Feb 16 '18 at 7:15




            The difference which the author of this answer missed is that * translates to every while H translates to any. So while * * * * * means every minute, H * * * * means build once every hour but I don't care the exact minute (can be anywhere between 0-59 if not defined by a range) and H H * * * means build once per day but I don't care what time.
            – derHugo
            Feb 16 '18 at 7:15











            -5














            The syntax is :





            MINUTE  Minutes within the hour (0-59)
            HOUR The hour of the day (0-23)
            DOM The day of the month (1-31)
            MONTH The month (1-12)
            DOW The day of the week (0-7) where 0 and 7 are Sunday.


            If you want to schedule for every 3 hours,
            the syntax should look:



            * 3 * * * *





            share|improve this answer



















            • 4




              This will schedule for 3 AM every day, and not every 3 hour
              – lony
              Jun 30 '15 at 12:38
















            -5














            The syntax is :





            MINUTE  Minutes within the hour (0-59)
            HOUR The hour of the day (0-23)
            DOM The day of the month (1-31)
            MONTH The month (1-12)
            DOW The day of the week (0-7) where 0 and 7 are Sunday.


            If you want to schedule for every 3 hours,
            the syntax should look:



            * 3 * * * *





            share|improve this answer



















            • 4




              This will schedule for 3 AM every day, and not every 3 hour
              – lony
              Jun 30 '15 at 12:38














            -5












            -5








            -5






            The syntax is :





            MINUTE  Minutes within the hour (0-59)
            HOUR The hour of the day (0-23)
            DOM The day of the month (1-31)
            MONTH The month (1-12)
            DOW The day of the week (0-7) where 0 and 7 are Sunday.


            If you want to schedule for every 3 hours,
            the syntax should look:



            * 3 * * * *





            share|improve this answer














            The syntax is :





            MINUTE  Minutes within the hour (0-59)
            HOUR The hour of the day (0-23)
            DOM The day of the month (1-31)
            MONTH The month (1-12)
            DOW The day of the week (0-7) where 0 and 7 are Sunday.


            If you want to schedule for every 3 hours,
            the syntax should look:



            * 3 * * * *






            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Apr 9 '15 at 14:20









            bummi

            1,50031421




            1,50031421










            answered Apr 9 '15 at 12:57









            narasimha Rao

            11




            11








            • 4




              This will schedule for 3 AM every day, and not every 3 hour
              – lony
              Jun 30 '15 at 12:38














            • 4




              This will schedule for 3 AM every day, and not every 3 hour
              – lony
              Jun 30 '15 at 12:38








            4




            4




            This will schedule for 3 AM every day, and not every 3 hour
            – lony
            Jun 30 '15 at 12:38




            This will schedule for 3 AM every day, and not every 3 hour
            – lony
            Jun 30 '15 at 12:38





            protected by JakeGould Dec 14 '15 at 17:39



            Thank you for your interest in this question.
            Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).



            Would you like to answer one of these unanswered questions instead?



            Popular posts from this blog

            How to reconfigure Docker Trusted Registry 2.x.x to use CEPH FS mount instead of NFS and other traditional...

            is 'sed' thread safe

            How to make a Squid Proxy server?