Cron · Every hour · @hourly
Cron Job Every Hour
Updated: May 2026
Hourly jobs are the backbone of most scheduling setups: log rotation, cache warming, summary emails and health checks. The canonical expression is 0 * * * *, and cron also offers the convenient shortcut @hourly.
See the next run times instantly · No upload
The expression
0 * * * * /path/to/command
@hourly /path/to/command
Fixing the minute field to 0 and leaving the hour as * means "at minute 0 of every hour" — once per hour, at the top of the hour, 24 times a day. The @hourly nickname expands to exactly 0 * * * *, so use whichever reads better in your crontab.
A frequent mistake
Newcomers sometimes write * * * * * hoping for hourly, but that runs every minute. The trick is that an hourly job must pin the minute field to a single value. If you want it to run at half past instead, use 30 * * * *.
Every N hours
0 */2 * * *— every 2 hours (00:00, 02:00, 04:00 …).0 */6 * * *— every 6 hours (00:00, 06:00, 12:00, 18:00).0 9-17 * * 1-5— top of each hour, 9am–5pm, weekdays.0 8-20/4 * * *— at 8am, 12pm, 4pm and 8pm.
Note that step values on the hour field always count from 0, so */5 on hours yields 0, 5, 10, 15, 20 — which does not divide evenly into the day. When you need clean intervals, prefer 2, 3, 4, 6, 8 or 12.
Spreading top-of-hour load
Because so many jobs fire at 0 * * * *, the top of the hour can become a load spike. Shifting the minute — for example 7 * * * * or 23 * * * * — keeps the hourly cadence while moving your job off the crowded :00 mark. Use the generator to confirm exactly when your chosen expression will fire next.
Frequently asked questions
Is @hourly portable?
The @hourly nickname works on Vixie cron, cronie and most modern Linux distributions. A few minimal cron implementations do not support nicknames, so when in doubt use 0 * * * *.
How do I run twice an hour?
Use 0,30 * * * * for on the hour and on the half hour.
Does the hour field use 24-hour time?
Yes. Hours run 0–23, where 0 is midnight and 13 is 1pm.