Cron ist ein Klassiker und fast überall verfügbar. Doch manchmal stößt es an Grenzen – zum Beispiel, wenn der Rechner ausgeschaltet ist, während ein Job geplant war.
Hier kommen anacron und systemd timers ins Spiel. Beide erweitern die Möglichkeiten von Cron und sind auf vielen modernen Linux-Systemen verfügbar.
🔹 Problem von Cron: „Verpasste“ Jobs
- Cron führt Jobs genau zur geplanten Zeit aus.
- Läuft dein System nicht, wenn der Zeitpunkt erreicht ist → der Job wird einfach übersprungen.
- Beispiel: Ein Backup ist für 2 Uhr morgens geplant. Dein Laptop ist aber über Nacht ausgeschaltet → Backup fällt aus.
👉 Lösung: anacron
sorgt dafür, dass solche Jobs nachgeholt werden.
🔹 Anacron – Nachholen von Jobs
Anacron ist ein Zusatzdienst, der speziell für Desktops und Laptops gedacht ist.
Läuft ein geplanter Job zur vorgesehenen Zeit nicht → Anacron startet ihn beim nächsten Systemstart nach.
Ideal für Backups und Wartungsarbeiten.
Installation
Auf Ubuntu/Debian:
sudo apt install anacron
Konfiguration
Die Konfigurationsdatei ist:
/etc/anacrontab
Aufbau:
PERIODE VERZÖGERUNG JOB-ID BEFEHL
Beispiel:
1 5 backup-job /home/user/backup.sh
1
→ alle 1 Tag5
→ 5 Minuten Verzögerung nach dem Startbackup-job
→ eindeutige ID/home/user/backup.sh
→ auszuführender Befehl
👉 Damit wird das Backup-Skript einmal pro Tag ausgeführt, auch wenn der PC um 2 Uhr ausgeschaltet war.
🔹 systemd timers – der moderne Ersatz
Viele Linux-Distributionen nutzen heute systemd als Init-System.
Darin gibt es Timer-Units, die Cron vollständig ersetzen können.
Vorteile gegenüber Cron
- Genauere Steuerung (Sekunden-genau möglich).
- Bessere Integration mit Diensten.
- Logs über journalctl.
- Wiederholungen, Zufallsverzögerungen, Abhängigkeiten.
Beispiel: Timer erstellen
- Service-Unit (z. B.
/etc/systemd/system/backup.service
):[Unit] Description=Backup Job [Service] Type=oneshot ExecStart=/home/user/backup.sh
- Timer-Unit (z. B.
/etc/systemd/system/backup.timer
):[Unit] Description=Backup Timer [Timer] OnCalendar=*-*-* 02:00:00 Persistent=true [Install] WantedBy=timers.target
- Aktivieren:
sudo systemctl enable --now backup.timer
👉 Der Timer sorgt dafür, dass der backup.service
täglich um 2 Uhr läuft.
Mit Persistent=true
wird der Job beim nächsten Start nachgeholt, falls er verpasst wurde.
Timer überwachen
- Liste aller aktiven Timer:
systemctl list-timers
- Logs ansehen:
journalctl -u backup.service
🔹 Vergleich: Cron, Anacron, systemd timers
Cron
- Typisch für: Server & Dauerbetrieb
- Vorteil: Einfach, überall verfügbar
- Nachteil: Jobs können ausfallen
Anacron
- Typisch für: Laptops & Desktops
- Vorteil: verpasste Jobs werden nachgeholt
- Nachteil: keine minutengenaue Jobs
systemd timers
- Typisch für: Moderne Distros
- Vorteil: Sehr flexibel, Logs integriert, robust
- Nachteil: Etwas komplexer zu lernen
👉 Empfehlung:
- Server → Cron oder systemd timers
- Laptops/Desktops → Anacron oder systemd timers
🔹 Übung
- Installiere Anacron und füge einen Job in
/etc/anacrontab
ein, der täglich dein Home-Verzeichnis sichert. - Erstelle mit systemd einen Timer, der einmal pro Woche ein Skript ausführt (z. B. ein Update-Skript).
- Vergleiche mit
systemctl list-timers
, welche Timer aktiv sind.
✅ Zusammenfassung
- Cron läuft zuverlässig, aber verpasst Jobs, wenn der Rechner aus ist.
- Anacron holt solche Jobs nach – ideal für Laptops und Desktops.
- systemd timers sind moderner, flexibler und oft die bessere Wahl für neue Systeme.
- Je nach Anwendungsfall solltest du das passende Werkzeug wählen.
👉 Im nächsten Kapitel erstellen wir ein Abschlussprojekt: ein vollständiges Cron-Setup, das Backups, Systempflege und Monitoring umfasst.