Vixie Cron
Paul Vixie's 1987 extended cron — the de facto Linux default, source of `@daily`, `*/n`, and named days.
Overview
Vixie cron is the implementation shipped on most Linux distributions (often called `cronie` or `cron`). It's a superset of POSIX cron and is the version most developers actually mean when they say “cron”.
It adds step syntax, named months and days, the `@hourly`-style aliases, and per-user crontabs with `TZ`/`CRON_TZ` environment variables.
Field Structure
Field Order5 fields: minute hour day-of-month month day-of-week
Day-of-Week0=Sunday, 1=Monday, …, 6=Saturday. 7 also accepted as Sunday.
Special Characters
| Token | Meaning |
|---|---|
| * | Any value. |
| , | List separator. |
| - | Range. |
| / | Step (e.g. `*/5`, `10-30/2`). |
Aliases
- `@reboot` — run once at startup.
- `@yearly` / `@annually` → `0 0 1 1 *`
- `@monthly` → `0 0 1 * *`
- `@weekly` → `0 0 * * 0`
- `@daily` / `@midnight` → `0 0 * * *`
- `@hourly` → `0 * * * *`
Comparison vs. Unix Cron
| Feature | Vixie Cron | Unix Cron |
|---|---|---|
| Field count | 5 | 5 |
| Seconds field | No | No |
| Step syntax (`*/n`) | Yes | No (in strict POSIX) |
| Named months (JAN-DEC) | Yes | No |
| Named days (MON-SUN) | Yes | No |
| Aliases (`@hourly` etc.) | Yes | No |
| `@reboot` | Yes | No |
| DOM vs DOW | OR when both restricted | OR when both restricted |
Examples
Gotchas & Pitfalls
- ⚠Set `CRON_TZ=` at the top of a crontab to override the daemon timezone for the rest of the file.
- ⚠`@reboot` only fires for crond restarts, not for individual user re-logins.
- ⚠Day-of-week names are case-insensitive (`mon`, `MON`, `Mon` all work).