Cron: Every Minute
The cron expression for "every minute", what each field means, and the next run times on your clock.
What is the cron expression for every minute?
The cron expression for every minute is * * * * *. All five fields, minute, hour, day of month, month, and day of week, are wildcards, so the schedule matches every minute of every day. That is 1,440 executions per 24 hours, so the job itself must stay lightweight.
* * * * *Every minute
- …
- …
- …
- …
- …
How * * * * * reads field by field
Cron evaluates five fields left to right: minute, hour, day of month, month, day of week. In this expression every field is the wildcard *, which matches any legal value, so the daemon finds a match on every wall-clock minute. There is nothing to align or offset; the job starts near second zero of each minute, and the effective interval is exactly 60 seconds regardless of when you installed the crontab.
Because the wildcard covers everything, this is also the expression people paste by accident when they only wanted a placeholder. If a downstream API or database sits behind the job, 1,440 daily invocations show up as a load anomaly fast, so confirm every-minute cadence is really what the task needs before shipping it.
Guard against overlapping runs
Cron never checks whether the previous invocation finished. A job that occasionally takes 90 seconds will overlap itself, and under sustained slowness the overlaps pile up until the box runs out of memory or file handles. The classic fix on Linux is flock: wrap the command as flock -n /tmp/job.lock /path/to/job so a second copy exits immediately instead of stacking.
Every-minute schedules earn their keep for queue polling, heartbeat pings to an external monitor, and small reconciliation loops where a 60 second delay is acceptable. If you find yourself wanting the work to happen faster than that, cron is the wrong tool; classic cron has no sub-minute resolution at all.
Frequently asked
- Will cron start a new run if the previous one is still going?
- Yes. Cron fires on schedule and does not track running processes, so long jobs overlap themselves. Wrap the command with flock or an equivalent lock file so a second instance exits instead of stacking up.
- How do I run a job more often than every minute?
- Standard cron cannot go below one minute; that is its floor. Common workarounds are a systemd timer with OnUnitActiveSec, a Quartz schedule with its leading seconds field, or a long-lived worker process that sleeps in a loop.
- Does * * * * * fire exactly on the minute boundary?
- Close to it. Vixie cron wakes once a minute and launches matching jobs near second zero, but process start adds a small, variable delay. If your task needs precise sub-second timing, use a dedicated scheduler rather than cron.
More in this series
// The subscription desk
The Inference Report
The weekly briefing for AI engineers: model releases, pricing moves, benchmarks, and the news that changes what you should build with and what it costs. Every Tuesday, 5-minute read. No fluff.
Join AI engineers who stopped overpaying for tokens. Unsubscribe anytime.