*/5 * * * * runs a job every five minutes, around the clock. The five fields are minute, hour, day of month, month and day of week, and only the first one is set: */5 means “every minute from 0 to 59 whose number divides by 5”.
When it fires
On the clock, not five minutes after you saved it. The runs land at :00, :05, :10 … :55 of every hour. Checked at 09:58 UTC, the next five runs are:
10:00 10:05 10:10 10:15 10:20
So the first run can come anywhere from a few seconds to five minutes after the job is installed. If you need a different offset, give the step a start: 2-59/5 * * * * runs at :02, :07, :12 and so on.
Variations
*/5 9-17 * * 1-5 every 5 minutes, 09:00 to 17:55, Monday to Friday
*/5 * * * 0,6 every 5 minutes on weekends
0,30 * * * * every 30 minutes, for comparison
The same schedule elsewhere
- crontab:
*/5 * * * * /usr/local/bin/backup.sh. Times follow the server’s timezone unless the crontab setsCRON_TZ. - GitHub Actions:
cron: '*/5 * * * *'underon.schedule. Five minutes is the shortest interval GitHub allows, times are UTC, and runs can start late when Actions is busy. - Kubernetes CronJob:
schedule: "*/5 * * * *"; setspec.timeZoneto pin the zone. - AWS EventBridge:
cron(0/5 * * * ? *). AWS uses six fields, adds a year at the end, and needs?in either day field. - systemd timer:
OnCalendar=*:0/5. - Spring
@Scheduled:0 */5 * * * *, because Spring’s cron starts with a seconds field.