List all timers
systemctl list-timers
List all timers (including inactive)
systemctl list-timers --all
Check timer status
systemctl status backup.timer
Create a timer (example)
Create /etc/systemd/system/backup.timer:
[Unit]
Description=Daily Backup Timer
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
Create corresponding service
Create /etc/systemd/system/backup.service:
[Unit]
Description=Backup Service
[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh
Timer schedules (OnCalendar)
# Every minute
OnCalendar=*:*
# Every 5 minutes
OnCalendar=*:0/5
# Every hour
OnCalendar=hourly
# Every day at 2:30 AM
OnCalendar=*-*-* 02:30:00
# Every Monday at 9 AM
OnCalendar=Mon *-*-* 09:00:00
# Every weekday at 6 PM
OnCalendar=Mon..Fri *-*-* 18:00:00
# First day of month
OnCalendar=*-*-01 00:00:00
Enable and start timer
sudo systemctl enable backup.timer
sudo systemctl start backup.timer
Stop timer
sudo systemctl stop backup.timer
Disable timer
sudo systemctl disable backup.timer
View timer logs
sudo journalctl -u backup.timer
View service logs
sudo journalctl -u backup.service
Reload systemd
After creating/editing timer:
sudo systemctl daemon-reload
Timer with delay after boot
[Timer]
OnBootSec=5min
OnUnitActiveSec=1h
Check next trigger time
systemctl list-timers backup.timer