Cron: Every Hour
0 * * * * runs once an hour, on the hour — at :00 of every hour, every day. It's the classic default for jobs that need regular but not aggressive freshness: log rotation, moderate data syncs, and periodic cleanup tasks.
0 * * * *
Examples & Variations
Common Mistakes
- Writing * * * * * (every minute) when you meant every hour — a single field mistake changes the frequency by 60x.
- Assuming "every hour" and "every 60 minutes" are the same thing — 0 * * * * always fires on the hour mark, while a literal 60-minute interval from an arbitrary start time would drift relative to the clock.
- Not considering timezone: an hourly job on a server set to UTC will fire at different local times than one on a server in local time, which matters for anything user-facing.
Best Practices
- Hourly is the standard interval for log rotation (logrotate defaults to this cadence) and works well for most periodic maintenance tasks.
- If exact minute doesn't matter, avoid clustering every hourly job at :00 — spreading them across the hour (0, 15, 30, 45 for different jobs) reduces simultaneous load spikes.
- For anything that must run in a specific timezone regardless of server location, compute the offset explicitly rather than relying on server local time.
Frequently Asked Questions
- What does the 0 in 0 * * * * mean?
- It pins the minute field to exactly 0, so the job only fires once per hour at the top of the hour, rather than every minute (which * would produce).
- How do I run a job every hour but not on the hour?
- Change the minute field to any fixed value — 30 * * * * runs at :30 of every hour instead of :00.
- Does @hourly mean the same thing as 0 * * * *?
- Yes. @hourly is a shorthand nickname supported by most standard cron daemons (Vixie cron, systemd-cron) that expands to exactly 0 * * * *.
Related Tools
Cron Parser
Translate cron expressions to plain English
Cron Cheat Sheet
Quick reference for cron syntax, special characters, and shortcuts
Cron Examples Library
Browse and search common cron expression examples
Cron: Every 30 Minutes
Run a cron job every 30 minutes with */30 * * * *. See half-hourly scheduling examples, common mistakes, and best practices.
Cron: Every Day
The cron expression for every day is 0 0 * * *, running once daily at midnight. See daily scheduling examples and best practices.
Cron: Every Week
The cron expression for every week is 0 0 * * 0, running once weekly on Sunday at midnight. See weekly scheduling examples and best practices.