For Solus systems without cron, here's how to configure Timeshift with native systemd timers:
1. Create Timeshift Backup Service
sudo nano /etc/systemd/system/timeshift-backup.service
[Unit]
Description=Timeshift System Backup
Requires=network-online.target
After=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/bin/timeshift --create --comments "Scheduled snapshot" --tags D
ExecStartPost=/bin/sh -c 'date +"%%Y-%%m-%%d %%H:%%M:%%S" >> /var/log/timeshift.log'
ExecStartPost=/bin/sh -c 'echo "Snapshot created: $(ls /timeshift | tail -n1)" >> /var/log/timeshift.log'
2. Create Systemd Timer
sudo nano /etc/systemd/system/timeshift-backup.timer
[Unit]
Description=Weekly Timeshift Backups
[Timer]
OnCalendar=Mon *-*-* 04:00:00
RandomizedDelaySec=1h
Persistent=true
[Install]
WantedBy=timers.target
3. Enable and Verify
sudo systemctl daemon-reload
sudo systemctl enable --now timeshift-backup.timer
# Check timer status
systemctl list-timers timeshift-backup.timer
Key Differences from Cron:
- Persistent State: Survives reboots better than cron
- Log Integration: Journal entries via:
journalctl -u timeshift-backup.service -b -n 50
- Calendar Flexibility: Supports more complex schedules like:
OnCalendar=*-*-1,15 03:00:00 # 1st/15th of month
Note: Solus' curated updates mean you should still manually verify Timeshift snapshots after major system updates:
sudo eopkg check | grep -q "broken" && timeshift --restore