Im Cron-Kurs hast du gelernt, wie man zeitgesteuerte Aufgaben automatisiert.
Mit systemd kannst du das Gleiche tun – aber flexibler und besser integriert.
In diesem Kapitel lernst du, wie du systemd Timer erstellst und verwaltest.
🔹 Was sind Timer in systemd?
- Ein Timer ist eine spezielle Unit-Datei mit der Endung
.timer. - Er startet zu bestimmten Zeitpunkten einen anderen Dienst (meist eine
.service-Unit). - Timer sind die systemd-Variante von Cronjobs – nur zuverlässiger und mit besseren Logs.
👉 Vorteil: Du kombinierst einen Timer immer mit einem Service.
🔹 Aufbau eines Timers
Beispiel: /etc/systemd/system/backup.timer
[Unit] Description=Täglicher Backup-Timer [Timer] OnCalendar=*-*-* 02:00:00 Persistent=true [Install] WantedBy=timers.target
- OnCalendar= → Zeitangabe (hier: täglich um 2 Uhr).
- Persistent=true → Verpasste Jobs (z. B. wenn der PC aus war) werden beim nächsten Start nachgeholt.
- WantedBy=timers.target → Sorgt dafür, dass der Timer beim Boot aktiviert wird.
🔹 Service und Timer zusammen nutzen
Ein Timer allein reicht nicht – er ruft immer einen Service auf.
Beispiel: /etc/systemd/system/backup.service
[Unit] Description=Backup Service [Service] Type=oneshot ExecStart=/usr/bin/rsync -a /home/user/ /home/user/backups/
👉 Der Timer backup.timer startet also den Service backup.service.
🔹 Timer aktivieren und starten
- systemd neu laden:
sudo systemctl daemon-reload
- Timer starten:
sudo systemctl start backup.timer
- Timer beim Boot aktivieren:
sudo systemctl enable backup.timer
👉 Damit läuft dein Backup jeden Tag automatisch.
🔹 Timer überwachen
- Alle aktiven Timer anzeigen:
systemctl list-timers
- Beispielausgabe:
NEXT LEFT LAST PASSED UNIT ACTIVATES Mon 2025-09-15 02:00:00 CEST 10h left Sun 2025-09-14 02:00:00 CEST 14h ago backup.timer backup.service
- Logs prüfen:
journalctl -u backup.service
👉 Damit hast du volle Kontrolle über deine geplanten Aufgaben.
🔹 Zeitangaben im Detail
Timer nutzen OnCalendar mit einer flexiblen Syntax:
- Jeden Tag um 2 Uhr:
OnCalendar=*-*-* 02:00:00
- Jeden Montag um 8 Uhr:
OnCalendar=Mon 08:00
- jede Stunde:
OnCalendar=hourly
- Jede Minute (für Tests):
OnCalendar=*:*:0/60
👉 systemd-Timer sind oft lesbarer als Cron-Syntax.
🔹 Übung
- Erstelle einen Service
reminder.service, der eine Nachricht in/home/user/reminder.logschreibt. - Erstelle dazu einen Timer
reminder.timer, der jede Stunde ausgeführt wird. - Aktiviere und starte den Timer.
- Prüfe mit
systemctl list-timers, ob dein Timer aktiv ist. - Sieh dir die Logs mit
journalctl -u reminder.servicean.
✅ Zusammenfassung
- systemd-Timer sind die moderne Alternative zu Cron.
- Ein Timer (
.timer) aktiviert immer einen Service (.service). - Mit
OnCalendarlegst du Zeitpläne fest,Persistent=trueholt verpasste Jobs nach. - Mit
systemctl list-timersundjournalctlkannst du Timer überwachen.
👉 Im nächsten Kapitel kombinieren wir alles Gelernte zu einem Abschlussprojekt: Eigene Services + Timer, die zusammen eine vollautomatisierte Lösung ergeben.
📚 Inhaltsverzeichnis
👉 systemd Kapitel 1: Grundlagen – Was ist systemd und wie arbeitet es?
👉 systemd Kapitel 2: Dienste steuern mit systemctl
👉 systemd Kapitel 3: Logs und Fehlersuche mit journalctl
👉 systemd Kapitel 4: Bootprozess & Targets verstehen
👉 systemd Kapitel 5: Eigene Services erstellen
👉 systemd Kapitel 6: Timer als moderne Cron-Alternative
👉 systemd Kapitel 7: Abschlussprojekt – Eigene Services & Timer kombinieren
