Field-by-Field Breakdown of `0 */6 * * *`
| Position | Field Name | Allowed Values | Value in `0 */6 * * *` | Evaluation Meaning |
|---|---|---|---|---|
| 1 | Minute | 0 – 59 | 0 | 0 (At minute 0) |
| 2 | Hour | 0 – 23 | */6 | */6 (Hours 0, 6, 12, and 18) |
| 3 | Day of Month | 1 – 31 | * | * (Every day of the month: 1-31) |
| 4 | Month | 1 – 12 | * | * (Every month: 1-12) |
| 5 | Day of Week | 0 – 6 (Sun-Sat) | * | * (Every day of the week: 0-6) |
Quarter-Day Scheduling Architecture
A 6-hour interval matches the natural rhythm of global business days across Pacific, European, and Asian time zones. It is commonly used for currency exchange updates, intermediate database checkpointing, and anti-spam blocklist downloads.
Dividing 24 by 6 yields exactly 4 runs daily: midnight, 6:00 AM, 12:00 PM, and 6:00 PM. Each quadrant represents a distinct commercial window across major trading markets.
Because runs occur 6 hours apart, transient infrastructure hiccups (such as an upstream API 503 error) have ample time to recover before the subsequent scheduled invocation.
Common Production Scenarios for `0 */6 * * *`
IP Reputation & Spam Blocklist Update
Downloads updated CIDR IP blocklists from Spamhaus and Project Honey Pot to update local iptables and Nginx firewall rules.
/usr/local/bin/update_spam_blocklists.shIntermediate S3 Database Snapshot
Creates interim database WAL delta backups every 6 hours to minimize Recovery Point Objective (RPO) in disaster recovery.
/usr/bin/wal-g backup-push /var/lib/postgresql/dataExchange Rate & Crypto Price Cache Refresh
Fetches official mid-market currency benchmark rates and updates local Redis cash drawers for consumer checkout pages.
/usr/bin/node /opt/finance/sync_benchmarks.jsProduction Gotchas When Running `0 */6 * * *`
- Noon & 6 PM Traffic Peaks: Invocations at 12:00 and 18:00 coincide with peak consumer lunchtime and evening traffic. Stagger heavy batch work to minute 30 (30 */6 * * *).
- Network Timeouts: When querying third-party APIs on a 6-hour interval, configure retry backoff so a single failed request does not leave stale data for 6 hours.
- Timezone Drift: 06:00 UTC corresponds to 01:00 AM Eastern. Ensure server clocks are synchronized to UTC using chrony or systemd-timesyncd.
Frequently Asked Questions About `0 */6 * * *`
What exact times does 0 */6 * * * execute?
It executes at 00:00 (midnight), 06:00 (6 AM), 12:00 (noon), and 18:00 (6 PM) in the system's configured timezone.
How do I run every 6 hours starting at 3 AM?
Use explicit comma list notation in the hour field: 0 3,9,15,21 * * * /path/to/script.sh. This maintains a 6-hour gap while offsetting from midnight.
Can I use @every_6_hours?
No, standard Unix cron does not support an @every_6_hours macro. You must use the POSIX expression 0 */6 * * *.