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

TokenMeaning
*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

FeatureVixie CronUnix Cron
Field count55
Seconds fieldNoNo
Step syntax (`*/n`)YesNo (in strict POSIX)
Named months (JAN-DEC)YesNo
Named days (MON-SUN)YesNo
Aliases (`@hourly` etc.)YesNo
`@reboot`YesNo
DOM vs DOWOR when both restrictedOR when both restricted

Examples

*/5 * * * *Every 5 minutes.Try it →
@hourlyOnce every hour at minute 0.
@dailyDaily at midnight.
0 9 * * MON-FRI9 AM on weekdays.Try it →
30 8 * * MON,WED,FRIMondays, Wednesdays, Fridays at 08:30.Try it →
0 0 1 JAN *January 1 at midnight.Try it →
@rebootRun once at system boot.

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).

References

Free cron syntax cheat sheet

© 2026 Abel Solutions LLC. All rights reserved. · More from Abel Solutions: RegexPro — test and debug regular expressions