83

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 

1

4 Answers 4

152

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 
1
  • that should do it. Commented Jul 21, 2009 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.

0
15

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
  • 3
    */2 is much cleaner Commented Jul 21, 2009 at 13:39
  • 11
    */2 while cleaner, is not portable... does not work on solaris and likely most other unix variants. Commented Jul 21, 2009 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. Commented Jun 8, 2014 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.

1
  • This should be acepted as well: 0 0-23/2 * * * Commented Sep 3, 2019 at 16:49

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.