How 0 * * * * works
In the five-field cron format, the first field is the minute (0–59). Setting it to 0 pins the execution to the exact start of every hour. The second field (hour) is *, which matches all 24 hours. The remaining three * fields match all days, months, and weekdays. The result is 24 runs per day, one at the start of each clock hour.
Hourly cron jobs are the standard choice for: scheduled reports (hourly traffic summary, error rate digest), cache warming (refreshing a CDN or in-memory cache with pre-computed data), log archival (rotating the current hour's log file), and external API polling where 60-minute data lag is acceptable.
Linux's built-in /etc/cron.hourly/
On Debian/Ubuntu/RedHat systems, you can place executable scripts directly into /etc/cron.hourly/ without writing a crontab entry. The system's cron.d configuration runs run-parts /etc/cron.hourly at the top of every hour. This is managed by the anacron or crond daemon and is equivalent to an explicit 0 * * * * crontab entry.