80

This question already has an answer here:

I have the cron job as shown below, and wanted it to run every 2 hours, but it keeps running every 2 minutes.

Can someone tell me where I'm going wrong?

  
* */2 * * * /path-to-script

marked as duplicate by Michael Hampton Sep 20 '14 at 14:59

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

144

An asterisk in the minute (first) field tells it to run every minute, regardless of the other fields.

You need to specify an exact minute to run within the hour. Be that on the hour (0), half past (30), etc..

0 */2 * * * /path-to-script
  • that should do it. – egorgry Jul 21 '09 at 13:27
15

The correct description of what you had

 * */2 * * * /path-to-script

is "run every minute where the hour is a multiple of 2".

Which means 00:00 to 00:59, 02:00 to 02:59, 04:00 to 04:59, ... and so on. Not quite the same as "run every minute". The solution already given is valid though.

13

Off the top of my head, you could try specifying all the hours when it should run:

0 0,2,4,6,8,10,12,14,16,18,20,22 * * * /path-to-script
  • 3
    */2 is much cleaner – David Pashley Jul 21 '09 at 13:39
  • 11
    */2 while cleaner, is not portable... does not work on solaris and likely most other unix variants. – ericslaw Jul 21 '09 at 14:26
  • 1
    Good to know. This options has the ability to ignore some of the hours which we may not need to execute the cron. – BlueBird Jun 8 '14 at 6:35
1

Also you can do this:

0 0-23/2 * * * /path/to/the/script

or if you want to be more specific on every 2 hours, you can use:

0 0,2,4,6,8,10,12,14,16,18,20,22 * * * /path/to/the/script

The hours values should be separated by commas.

Not the answer you're looking for? Browse other questions tagged or ask your own question.