Docs / Programming & Development / Writing Systemd Timers as Cron Replacements

Writing Systemd Timers as Cron Replacements

By Admin · Feb 25, 2026 · Updated Apr 23, 2026 · 27 views · 1 min read

Why Systemd Timers?

Systemd timers offer advantages over cron: better logging (journalctl), dependency management, resource controls, and the ability to trigger missed runs.

Create a Service Unit

Create /etc/systemd/system/backup.service:

[Unit]
Description=Daily Backup Job

[Service]
Type=oneshot
ExecStart=/root/scripts/backup.sh
User=root

Create a Timer Unit

Create /etc/systemd/system/backup.timer:

[Unit]
Description=Run backup daily at 3 AM

[Timer] 03:00:00
Persistent=true
RandomizedDelaySec=300

[Install]
WantedBy=timers.target

Enable the Timer

sudo systemctl daemon-reload
sudo systemctl enable --now backup.timer

OnCalendar Syntax

# Every 5 minutes

# Daily at midnight

# Monday at 9 AM *-*-* 09:00:00

# First of every month 00:00:00

Managing Timers

# List all timers
systemctl list-timers --all

# View logs
journalctl -u backup.service

# Run manually
sudo systemctl start backup.service

Was this article helpful?