Cron vs systemd timers: which scheduler should you use on modern Linux?
Use cron for simplicity, portability, and when you're on a non-systemd system. Use systemd timers when you need randomized delays, sub-minute precision, monotonic scheduling, or tight integration with systemd service management. Both are viable on modern Linux. The decision is about your specific operational requirements.
Cron has been the Unix job scheduler for 50 years. Systemd timers are the modern alternative, shipping by default on every major Linux distribution since roughly 2016. Choosing between them is a trade-off between simplicity and capability. Cron wins on portability and ease of use. Systemd timers win on precision and reliability features.
By TechCompare · Updated
How this is calculated
Systemd timers support features cron doesn't: randomized start delays (RandomizedDelaySec) to avoid thundering herds, monotonic timers (OnUnitActiveSec) that fire relative to the last completion rather than wall clock time, sub-second precision, and proper dependency management between services. Cron's advantages are that it works on every Unix-like system including macOS, FreeBSD, and minimal containers, and its syntax is known by every sysadmin. If you're scheduling on a single server and don't need the advanced features, cron is fine. If you're deploying to a fleet of Linux servers and need coordinated timing, randomized jitter, or sub-minute scheduling, systemd timers are the right choice.
Verdict
The split comes down to features versus ubiquity. systemd adds RandomizedDelaySec to dodge thundering herds, OnUnitActiveSec for monotonic timing relative to last completion, sub-second precision, and service dependency management. cron still runs on macOS, FreeBSD, and minimal containers where systemd isn't present. Pick cron when you need that reach, pick timers when you need the jitter and precision.
More Cron scenarios
Related guides
Frequently asked questions
What's the difference between cron and systemd timers?
What can systemd timers do that cron can't?
Should I migrate my cron jobs to systemd timers?
Related tools
Unix Timestamp
Convert between Unix timestamps and human-readable dates.
Use tool ➜CHMOD Configurator
Calculate Linux file permissions using checkboxes, octal numbers, or symbolic notation.
Use tool ➜Text Encoding Converter
Convert between Text, Base64, Binary, Hexadecimal, and Decimal formats.
Use tool ➜