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
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
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.
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
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.