What a five-minute step really means
A cron every 5 minutes schedule fires twelve times an hour, at minute 0, 5, 10 and so on up to 55. It looks like an interval, and here it behaves like one, but the mechanism is different: cron is not counting five minutes from the last run, it is testing whether the current minute is divisible by five. The distinction stays invisible while the number divides 60 evenly, and becomes very visible the moment it does not.
Why a seven-minute step does not work
Take the same syntax and ask for seven. The count starts at 0 and lands on 0, 7, 14, 21, 28, 35, 42, 49 and 56. Then the hour rolls over, the count restarts, and the next run is at 0, four minutes after the previous one instead of seven. Once an hour, forever, the gap collapses.
Five, ten, fifteen, twenty and thirty are the values that survive the boundary, because they are the divisors of 60. Anything else gives you a short tick every hour. If you genuinely need a seven-minute gap, cron cannot express it, and a timer that schedules the next run when the current one finishes can.
Shifting the run off the top of the hour
Every service on the machine wants minute zero. Backups, log rotation, metric flushes and half a dozen agents all fire together, and the busiest minute of your hour is the one you chose by default. Moving off it costs nothing:
2-59/5 * * * *
The range sets the starting point and the step keeps the gap, so the job runs at :02, :07, :12 and on to :57 — still twelve times an hour, now on its own. Spreading a fleet is the same trick with a different offset per host.
Restricting the window
Twelve runs an hour is 288 a day, and most of those are at three in the morning when nothing is happening. The variants above narrow the same cadence to office hours and to weekdays, which is the cheapest reduction available: the schedule keeps its resolution when it matters and stops entirely when it does not. If even that is finer than you need, the 30-minute schedule halves it again.
The environment the job inherits
A five-minute schedule multiplies every environment problem by 288. Cron gives the command a minimal path and none of your shell profile, so an interpreter that resolves in your terminal may not resolve here, and a job that fails on every tick sends a mail per failure to a local mailbox nobody reads. Use absolute paths, redirect both streams to a file you have rotated, and confirm the first run before you walk away.
Check the reading before you install
The explainer at the top of this page is filled with the five-minute expression already, and every row in the table under it was read back by the same parser. Change any field and the sentence changes with it, along with the next five runs in your own timezone. When you are ready to write something the table does not cover, the cron expression generator takes any five-field line and tells you what it will actually do.