To run a cron job every minute, use five asterisks:
* * * * *
It fires at the start of every minute, 1,440 times a day. In a crontab:
* * * * * /usr/local/bin/heartbeat.sh >> /var/log/heartbeat.log 2>&1
What each field means
| Field | Value | Meaning |
|---|---|---|
| Minute | * | every minute (0 to 59) |
| Hour | * | every hour (0 to 23) |
| Day of month | * | every day (1 to 31) |
| Month | * | every month |
| Day of week | * | every day of the week |
Variants
| Schedule | Expression |
|---|---|
| Every minute between 9:00 and 17:59 | * 9-17 * * * |
| Every minute on weekdays, business hours | * 9-17 * * 1-5 |
| Every minute, one hour only (2:00 to 2:59) | * 2 * * * |
| Every 2 minutes | */2 * * * * |
| Quartz (seconds first) | 0 * * * * ? |
Spring @Scheduled (seconds first) | 0 * * * * * |
| AWS EventBridge | rate(1 minute) |
Platform notes
- Linux crontab: one minute is the finest resolution. Runs happen in the server's local time.
- GitHub Actions: not possible. The minimum is every 5 minutes; see GitHub Actions cron.
- Kubernetes CronJob: allowed, but each run creates a Job and a Pod. Set
concurrencyPolicy: Forbidand keepsuccessfulJobsHistoryLimitlow so finished Jobs don't pile up. - Cloudflare Cron Triggers:
* * * * *is one of the documented examples. Free plan Workers get 10 ms of CPU per invocation; Paid gets up to 30 seconds for schedules under an hour (as of October 2026). - Vercel: Pro and Enterprise allow once per minute. Hobby allows once a day only.
- Jenkins: accepted, with a warning suggesting
H * * * *. See Jenkins cron.
Common mistakes
- Overlapping runs. If the job can take more than a minute, guard it with
flock -n /tmp/job.lock /path/job.sh. - Meaning once an hour.
* 9 * * *runs 60 times, every minute from 9:00 to 9:59. For once at 9:00, write0 9 * * *. - Filling a disk with logs. 1,440 runs a day with verbose output adds up. Rotate the log or keep output short.
- Using cron as a queue. If something should happen right after an event, a webhook or queue is better than polling every minute.
Running an AI agent every minute
Rarely worth it: each run costs tokens, and most agent checks don't change minute to minute. Start hourly and tighten only if you need to; the scheduled skills page shows how to run a Claude Code or Codex skill on a schedule.
Questions
Is * * * * * the same as */1 * * * *?
Yes. Both run every minute. * * * * * is the usual way to write it.
Can GitHub Actions run a workflow every minute?
No. The shortest interval GitHub Actions allows for scheduled workflows is every 5 minutes, and runs can be delayed when the service is busy.
How do I run a cron job every 30 seconds?
Standard cron can't go below a minute. Add two lines, one plain and one that sleeps first: * * * * * /path/job.sh and * * * * * sleep 30; /path/job.sh. For anything finer, use a systemd timer or a long-running loop.
Why does Jenkins warn about * * * * *?
Jenkins asks whether you really mean every minute and suggests H * * * *, once an hour at a time hashed from the job name. If you do want every minute, the warning can be ignored.