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 Tag
  • 5 → 5 Minuten Verzögerung nach dem Start
  • backup-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

  1. Service-Unit (z. B. /etc/systemd/system/backup.service):
    [Unit]
    Description=Backup Job
    
    [Service]
    Type=oneshot
    ExecStart=/home/user/backup.sh
  2. Timer-Unit (z. B. /etc/systemd/system/backup.timer):
    [Unit]
    Description=Backup Timer
    
    [Timer]
    OnCalendar=*-*-* 02:00:00
    Persistent=true
    
    [Install]
    WantedBy=timers.target
  3. 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

  1. Installiere Anacron und füge einen Job in /etc/anacrontab ein, der täglich dein Home-Verzeichnis sichert.
  2. Erstelle mit systemd einen Timer, der einmal pro Woche ein Skript ausführt (z. B. ein Update-Skript).
  3. 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.