Run a Cron Job Every 2 Minutes
To run a job every 2 minutes, use */2 * * * *. The */2 in the minute field means every second minute: 0, 2, 4, 6 ... 58.
The expression
*/2 * * * * fires at minute 0, 2, 4, 6 and so on, every hour. The */2 is a step value on the minute field.
How the step works
*/N means "every Nth value starting from 0". So */2 = even minutes. It only divides cleanly into 60 for factors of 60 (2, 3, 4, 5, 6, 10, 12, 15, 20, 30).
Watch for overlap
If a job can take longer than 2 minutes, guard it with flock so runs don't stack: */2 * * * * flock -n /tmp/job.lock /path/job.sh.
FAQ
What is the cron expression for every 2 minutes?
*/2 * * * * runs every 2 minutes (minute 0, 2, 4, ... 58 of each hour). The */2 is a step value on the minute field.
Does */2 land on odd or even minutes?
Even minutes. Step values count from 0, so */2 hits 0, 2, 4, 6 and so on.
How do I stop overlapping every-2-minute runs?
Wrap the command in flock -n /tmp/job.lock so a new run is skipped if the previous one is still going.