Easy. Use the following cron:
2-59/5 * * * * scriptGenerally speaking, to run a script every nth minute starting at m, with 1≤m<n, the cron expression is:
m-59/n * * * * scriptThe dash represents every minute, starting at the given value and ending at 59, inclusive on both ends.
The default */5 * * * * fires at minutes 0, 5, 10, …, 55 — every “divisible by 5” minute. To shift the cadence, explicitly anchor the start: 2-59/5 fires at 2, 7, 12, 17, …, 57. Same frequency, different phase.
A common reason to do this: spreading load across many machines so they don't all hammer a shared resource at the same minute. Pair it with a small random sleep at the start of the script for an extra jitter: sleep $((RANDOM % 30)). Or, on Jenkins, use the H hash modifier — see the Jenkins cron guide for that.
One subtle trap: 2-59/5 only fires inside that range. If you need “every 5 minutes starting from minute 58” (i.e. 58, 03, 08, …) — which crosses the hour boundary — you have to use a list: 3,8,13,18,23,28,33,38,43,48,53,58 * * * *. Cron does not wrap step ranges.
Read the dedicated guide: Cron every 5 minutes.
View future cron matches in a calendar
Showing next 1000 cron schedules
See this cron expression on the calendar → view example
Other answers and worked examples for the most confusing cron expressions.
Ready to schedule it?
WordPress, Shopify, Railway, Cloud Run, Vercel, HubSpot, Ghost, your own box. If it answers HTTP, Crontap can drive it on a clock you can read, in the timezone that actually matters, and page you when something breaks.
Free forever tier ・ No credit card required
Schedule
“every 5 minutes”
Next run
in 23s
Permalink: https://tool.crontap.com/help/cron-job-expression-how-to-run-a-script-every-nth-minutes