Every minute cron: what * * * * * means and when it is too often
Runs in your browser — nothing you paste leaves this page. How we prove that
Cron Expression Tester playground
Five fields — minute, hour, day of month, month, day of week. Macros like @daily are supported too.
Results update as you type — press Enter to run now.
Every minute.
- Computed in your browser, in your timezone.
`* * * * *` fires once at the start of every minute, all day, every day. The engine reads it as: Every minute.
Reading * * * * * field by field
A standard cron line has five fields in a fixed order: minute, hour, day of month, month and day of week. A bare asterisk means every allowed value of that field, so five asterisks match every minute of every hour of every day. There is no seconds field in classic cron, which makes one minute the shortest interval a crontab can express.
The parser on this page agrees: Every minute. The next run times in the panel above are computed in your browser, in your own timezone, so they are not printed in this text.
A crontab line and the overlap problem
A typical entry looks like * * * * * /usr/local/bin/poll-queue.sh >> /var/log/poll-queue.log 2>&1. Cron starts the command with a minimal environment, usually a short PATH and no shell profile, so use absolute paths and redirect output, otherwise cron tries to mail it to the owner.
The real risk at this frequency is overlap. Cron does not wait for the previous run to finish; if one run takes 70 seconds, two copies are alive at the same time, and a slow day can pile up dozens. Wrap the command in a lock: * * * * * flock -n /run/lock/poll-queue.lock /usr/local/bin/poll-queue.sh makes a second copy exit immediately instead of queueing behind the first.
systemd, Kubernetes and GitHub Actions
The systemd timer equivalent is OnCalendar=minutely (the same as *-*-* *:*:00). Timers never start a second instance of a running service, which removes the overlap problem without flock, and AccuracySec=1s stops systemd from coalescing the start time.
In a Kubernetes CronJob, schedule: "* * * * *" creates a new Job and Pod every minute; set concurrencyPolicy: Forbid so a slow run is skipped rather than doubled, and remember that Pod start-up latency eats into a 60-second budget. GitHub Actions accepts the expression but runs scheduled workflows at most every 5 minutes, and only in UTC.
When every minute is the wrong answer
Every-minute jobs are usually polling something that could push an event instead: a queue, a webhook, a file watcher. If the job only needs to react within a few minutes, every 5 minutes cuts the load fivefold; if it runs continuously anyway, a long-running service with its own loop is easier to monitor than 1,440 short processes a day.
FAQ
Questions, answered.
Tap a question to expand the answer.
Can cron run a job every 30 seconds?
Not with one line, because classic cron has no seconds field. The common workaround is two entries, one plain and one prefixed with sleep 30, or a systemd timer with OnCalendar=*:*:0/30, which does support seconds.
Does * * * * * run at exactly :00 seconds?
Cron wakes up once a minute and starts every matching job close to the top of the minute, but there is no guarantee of the exact second. Several jobs scheduled for the same minute all start together.
More free, private DevOps tools.
The Cron Expression Tester is one tool in OpsCanopy — a growing canopy of browser-based validators, converters and testers that never touch a server.
More in Scheduling
Read more about this
- GitHub Actions cron runs in UTC: convert your schedule and check the real next run time GitHub Actions cron timezone UTC explained: why schedule: cron: always fires on UTC, how DST shifts the wall-clock time, and how to check the real next run.
- Reading cron expressions: a field-by-field guide A field-by-field guide to reading cron expressions — the five time fields, ranges, steps, lists and @macros — plus the gotchas that misfire schedules.
New to Linux? Read the Linux guide →
42 free tools, every one offline-capable — opscanopy.com works with no signup and nothing uploaded.
Scheduling on Linux? Pair this with the Cron to systemd Converter, or browse the full tools directory.
Not affiliated with or endorsed by any cron implementation. Format names are used only to describe what this tool reads. OpsCanopy is free and open.