Cron · <code>*/5 * * * *</code>
Common cron schedules
The expressions people ask for most: every five minutes, hourly, daily, weekdays at 09:00 and first of the month.
Key facts
| Every 5 minutes | <code>*/5 * * * *</code> |
|---|---|
| Every hour | <code>0 * * * *</code> |
| Every day at midnight | <code>0 0 * * *</code> or <code>@daily</code> |
| Weekdays at 09:00 | <code>0 9 * * 1-5</code> |
| First of the month | <code>0 0 1 * *</code> |
| Sundays at 02:30 | <code>30 2 * * 0</code> |
| At startup | <code>@reboot</code> |
| Every 90 minutes | Not expressible in one five-field line |
The table, read literally
*/5 * * * * runs at minutes 0, 5, 10 and so on, 288 times a day. 0 * * * * runs once per hour at minute 0. 0 0 * * * runs at midnight in the daemon's time zone. 0 9 * * 1-5 runs Monday through Friday at 09:00, and 0 0 1 * * runs on the first day of every month.
Keep the command idempotent. A schedule that fires every five minutes will eventually overlap a slow run, and cron does not prevent a second copy from starting.
Schedules that need more than one line
Intervals that do not divide the field — 90 minutes, 7 hours, every 10 days — cannot be written as one five-field expression without drift. Use multiple lines for fixed offsets, or have the job record its last successful run and exit early when the interval has not elapsed.
For load-sensitive systems, avoid minute 0 and midnight exactly. Choosing an odd minute such as 7 or 23 costs nothing and keeps your job out of the thundering herd that every other crontab creates at the top of the hour.
Frequently asked questions
What is the cron expression for every 5 minutes?
*/5 * * * * — at minutes 0, 5, 10, …, 55 of every hour.
How do I run a job every weekday at 9am?
0 9 * * 1-5 in Vixie-style cron, where 1 is Monday and 5 is Friday.
How do I run something every 90 minutes?
One five-field expression cannot express it. Use several lines with staggered minute and hour values, or track the last run inside the script.