Cron expression for every minute
* * * * *
Every minute. It runs 1,440 times a day, 525,600 times a year.
The most frequent schedule standard cron supports, used for queue pollers, health checks and heartbeat scripts. Cron starts a new copy every minute whether or not the previous one has finished, so wrap anything that can run long in flock -n /tmp/job.lock to stop runs from piling up.
Field by field
| Field | Value | Matches |
|---|---|---|
| minute | * |
every value |
| hour | * |
every value |
| day of month | * |
every value |
| month | * |
every value |
| day of week | * |
every value |
Examples
crontab
Run crontab -e and add:
* * * * * /usr/local/bin/job.sh >> /var/log/job.log 2>&1
Kubernetes CronJob
apiVersion: batch/v1
kind: CronJob
metadata:
name: my-job
spec:
schedule: "* * * * *"
timeZone: "Etc/UTC" # Kubernetes 1.27+
concurrencyPolicy: Forbid # skip a run if the last one is still going
jobTemplate:
spec:
template:
spec:
containers:
- name: job
image: ghcr.io/acme/job:1.0
restartPolicy: OnFailure
GitHub Actions
on:
schedule:
- cron: '* * * * *' # UTC
GitHub Actions won’t run a schedule more often than every 5 minutes, so this workflow will run less often than the expression says. Scheduled runs can also start late when GitHub is busy.
systemd timer
# /etc/systemd/system/job.timer
[Unit]
Description=Run job.service every minute
[Timer]
OnCalendar=*-*-* *:*:00
Persistent=true
[Install]
WantedBy=timers.target
Enable it with systemctl enable --now job.timer, and check the next runs with
systemd-analyze calendar "*-*-* *:*:00". Persistent=true runs a missed job after
downtime, which cron can’t do.
AWS EventBridge
cron(* * * * ? *)
EventBridge cron has six fields (the last is the year), uses ? in either the day-of-month or the
day-of-week field, and numbers weekdays from 1 (Sunday) to 7. Rules run in UTC; EventBridge Scheduler also
accepts a time zone.
Similar schedules: every few minutes
-
Every 30 seconds:
* * * * * -
Every 2 minutes:
*/2 * * * * -
Every 3 minutes:
*/3 * * * * -
Every 5 minutes:
*/5 * * * * -
Every 10 minutes:
*/10 * * * * -
Every 15 minutes:
*/15 * * * * -
Every 20 minutes:
*/20 * * * * -
Every 30 minutes:
*/30 * * * * -
Every 45 minutes:
*/45 * * * * -
Every 5 minutes during business hours:
*/5 9-17 * * 1-5
Have a different schedule? Paste any expression into the Cron Expression Generator, or browse all cron examples.
Sources
- POSIX: crontab
- crontab(5) manual page
- Kubernetes docs: CronJob
- GitHub Actions docs: schedule event
- systemd.time(7): calendar events
- AWS docs: EventBridge Scheduler cron expressions
Spotted a mistake? Email hello@devtoolsmith.com and we’ll fix it.
Frequently asked questions
How do I run a cron job every minute?
Use * * * * *. It means “Every minute”. It runs 1,440 times a day, 525,600 times a year.