Cron Step Values: What */5 Really Means
*/5 in the minute field means 'every value in 0-59 that is divisible by 5' — 0, 5, 10, ... 55 — and the counter resets at the top of every hour. It is not 'every 5th time the job would run'. This matters for steps that don't divide evenly into 60.
How a step is computed
*/n is shorthand for the range's start, then every n-th value: in the minute field */5 = 0,5,10,15,20,25,30,35,40,45,50,55. At the next hour it starts again from 0.
The gotcha: steps that don't divide 60
*/7 gives 0,7,14,21,28,35,42,49,56 — then the hour rolls over and it jumps back to 0, only 4 minutes after 56. So the spacing is not a clean 7 minutes across the hour boundary. The same applies to */40, which fires at :00 and :40 only, then :00 again — a 40/20 split, not every 40 minutes.
When you want even spacing
Only step values that divide the range evenly (for minutes: 1,2,3,4,5,6,10,12,15,20,30) give uniform spacing. For others, list the exact minutes, or gate a more frequent schedule in your script.
Steps on a sub-range
You can combine a range with a step: 0-30/5 means every 5 minutes but only during the first half of the hour (0,5,10,15,20,25,30).
FAQ
Does */5 mean every 5th run?
No. */5 means every minute value divisible by 5 within 0-59 (0,5,10,...,55), and it resets at the top of each hour.
Why is */7 not exactly every 7 minutes?
Because 7 does not divide 60. */7 fires at 0,7,...,56 then jumps back to 0 at the next hour, so the gap across the hour boundary is only 4 minutes.
Which minute steps give even spacing?
Steps that divide 60 evenly: 1,2,3,4,5,6,10,12,15,20,30. Others leave an uneven gap at the hour boundary.