Minuteform / Every 5 minutes
$ crontab -l | grep '*/5'
Cron every 5 minutes: */5 * * * *
To run a job every five minutes, use */5 * * * *. This page shows what each field means, how the same schedule is written for other schedulers, and the details that cause surprises: steps that restart each hour, offsets, and runs that overlap.
*/5 * * * * runs at minute 00, 05, 10 … 55 of every hour: 12 runs an hour, 288 a day. The times are fixed to the clock, not counted from when the job last finished. See the next runs in your time zone.
01Field by field
| Field | Value | Meaning |
|---|---|---|
| minute | */5 | Every fifth minute from 0: 0, 5, 10 … 55. Same as 0-59/5. |
| hour | * | Every hour |
| day of month | * | Every day |
| month | * | Every month |
| day of week | * | Every weekday |
A step works inside its own field. When the job is installed at 10:03, the first run is 10:05, not 10:08, and the minute count starts again from :00 each hour.
02The same schedule in other schedulers
Five-field cron is shared by crontab, GitHub Actions and Kubernetes. Quartz and Spring add a seconds field; EventBridge adds a year and needs ? in one day field. The dialect comparison explains each difference.
| Scheduler | Every 5 minutes | Note |
|---|---|---|
| crontab (Vixie, cronie) | */5 * * * * /path/to/job.sh | Runs in the server’s time zone, or CRON_TZ in cronie. |
| GitHub Actions | - cron: '*/5 * * * *' | Five minutes is the shortest interval GitHub allows. Runs can be delayed, or dropped under heavy load, and only run on the default branch. |
| Kubernetes CronJob | schedule: "*/5 * * * *" | Add concurrencyPolicy: Forbid if runs must not overlap. |
| Quartz | 0 0/5 * * * ? | Leading seconds field; ? in day of week. |
Spring @Scheduled | 0 */5 * * * * | Six fields, seconds first. |
| AWS EventBridge | cron(0/5 * * * ? *) | Or rate(5 minutes), which counts from when the rule was created rather than from the clock. |
| systemd timer | OnCalendar=*:0/5 | Calendar event: every hour at minute 0, 5, 10 … |
03Other minute intervals
A step gives an even interval only when it divides 60. Otherwise the last gap of each hour is shorter, because the count restarts at :00. Minuteform shows a warning when this happens.
| Expression | Runs at | Runs per day |
|---|---|---|
*/10 * * * * | :00, :10, :20, :30, :40, :50 | 144 |
*/15 * * * * | :00, :15, :30, :45 | 96 |
*/20 * * * * | :00, :20, :40 | 72 |
*/30 * * * * | :00, :30 | 48 |
*/7 * * * * | :00, :07 … :56, then :00 again: the last gap is 4 minutes, not 7 | 216 |
*/45 * * * * | :00 and :45: gaps of 45 and 15 minutes | 48 |
Every 90 minutes needs two lines
No single five-field expression runs every 90 minutes. Two lines together give 00:00, 01:30, 03:00, 04:30 … 22:30, 16 runs a day:
0 */3 * * * /path/to/job.sh 30 1-22/3 * * * /path/to/job.sh
04Start at a different minute
Many jobs on */5 all start at :00, :05 and so on. To spread load, or to avoid the top of the hour when GitHub Actions is busiest, give the step a range that starts later.
| Expression | Runs at |
|---|---|
2-59/5 * * * * | :02, :07, :12 … :57 |
4-59/5 * * * * | :04, :09, :14 … :59 |
05When a run takes longer than five minutes
cron starts the next run on time whether or not the previous one has finished. For a job that can run long, add a lock so a second copy exits straight away:
*/5 * * * * flock -n /tmp/job.lock /path/to/job.sh >> /var/log/job.log 2>&1
- Kubernetes:
concurrencyPolicy: Forbidskips a run while the previous Job is still active. - GitHub Actions: a workflow-level
concurrencygroup stops scheduled runs from piling up. - Commands: cron runs with a small environment, so use absolute paths, and write
\%for a literal percent sign; an unescaped%ends the command in crontab.
FAQQuestions people ask
Is */5 * * * * the same as 0-59/5 * * * *?
Yes. In five-field cron a star with a step covers the whole range of the field, so both run at minutes 0, 5, 10 and so on through 55.
Does it run five minutes after the last run finished?
No. Cron matches clock times. A job installed at 10:03 first runs at 10:05, and a run that takes seven minutes overlaps the next one unless you add a lock.
Can GitHub Actions run a workflow every 5 minutes?
Yes, five minutes is the shortest interval GitHub supports. Scheduled runs use UTC unless you set timezone, can start late when GitHub is busy, and may be dropped under very high load.
How do I run every 5 minutes only during working hours?
Restrict the hour and weekday fields: */5 9-17 * * 1-5 runs from 09:00 to 17:55, Monday to Friday. Preview it in your time zone.
What is the Quartz or Spring version?
Both add a seconds field first. Quartz: 0 0/5 * * * ?. Spring @Scheduled: 0 */5 * * * *. Minuteform checks the five-field form; drop the leading seconds to preview it.
REFSources
Platform syntax follows the official documentation linked below. Vendors update their docs, so follow the links for the current wording.
- crontab(5) on man7.org: steps,
%in commands,CRON_TZ, the day-of-month OR day-of-week rule and daylight saving - GitHub Actions: schedule event: 5-minute minimum, delays and dropped runs under load, UTC default and
timezone, no@daily - Kubernetes CronJob:
schedule,timeZoneandconcurrencyPolicy - Quartz 2.3 CronTrigger tutorial
- Spring CronExpression
- Amazon EventBridge schedule expressions (
cron()andrate()) - systemd.time(7) calendar events and systemd.timer(5)
Persistent= - flock(1) from util-linux