Zuletzt aktualisiert am 04.12.2025 4 Minuten Lesezeit

Cronjob

Ein Cronjob ist eine zeitgesteuerte Aufgabe in Unix- und Linux-Systemen, die automatisch zu festgelegten Zeitpunkten ausgefuehrt wird. Der Name leitet sich vom griechischen Wort Chronos (Zeit) ab. Cronjobs sind ein fundamentales Werkzeug fuer die Systemadministration und ermoeglicht es, wiederkehrende Aufgaben wie Backups, Systemupdates oder Wartungsskripte ohne manuellen Eingriff auszufuehren.

Das System basiert auf zwei Komponenten: dem Cron-Daemon (crond), der als Hintergrunddienst laeuft, und der Crontab (Cron Table), einer Konfigurationsdatei mit den geplanten Aufgaben. Der Daemon prueft regelmaessig die Crontab-Dateien und fuehrt faellige Befehle automatisch aus.

Funktionsweise von Cronjobs

Der Cron-Daemon ist ein Hintergrunddienst, der beim Systemstart automatisch gestartet wird. Er arbeitet nach einem einfachen, aber effektiven Prinzip: In regelmaessigen Abstaenden (typischerweise jede Minute) liest er die Crontab-Dateien, vergleicht die aktuelle Systemzeit mit den konfigurierten Ausfuehrungszeiten und startet passende Befehle.

Jeder Benutzer kann eine eigene Crontab-Datei verwalten. Systemweite Cronjobs werden von Administratoren in /etc/crontab oder im Verzeichnis /etc/cron.d/ konfiguriert. Die Ausfuehrung erfolgt mit den Rechten des jeweiligen Benutzers, was ein wichtiges Sicherheitsmerkmal darstellt.

Crontab-Syntax

Die Syntax einer Crontab-Zeile besteht aus fuenf Zeitfeldern, gefolgt vom auszufuehrenden Befehl. Jedes Feld definiert einen Aspekt des Ausfuehrungszeitpunkts. Das Verstaendnis dieser Syntax ist essentiell fuer jeden, der mit Linux-Servern arbeitet.

# Aufbau einer Crontab-Zeile:
# Minute  Stunde  Tag  Monat  Wochentag  Befehl
#   *       *      *     *       *       /pfad/zum/skript.sh

# Wertebereich:
# Minute:     0-59
# Stunde:     0-23
# Tag:        1-31
# Monat:      1-12
# Wochentag:  0-7 (0 und 7 = Sonntag)

Die Zeitfelder unterstuetzen verschiedene Angaben: Einzelwerte (5), Bereiche (1-5), Listen (1,3,5), Intervalle (*/15 fuer alle 15 Einheiten) und das Sternchen (*) als Platzhalter fuer jeden moeglichen Wert.

Praktische Beispiele

Die folgenden Beispiele zeigen typische Anwendungsfaelle fuer Cronjobs. Du kannst sie als Vorlage fuer deine eigenen zeitgesteuerten Aufgaben verwenden.

# Jeden Tag um 3:00 Uhr nachts ein Backup erstellen
0 3 * * * /home/admin/backup.sh

# Alle 15 Minuten die Systemlast protokollieren
*/15 * * * * /usr/local/bin/log-load.sh

# Jeden Montag um 9:00 Uhr einen Bericht versenden
0 9 * * 1 /opt/scripts/weekly-report.sh

# Am 1. jedes Monats um Mitternacht Logs rotieren
0 0 1 * * /usr/sbin/logrotate /etc/logrotate.conf

# Werktags (Mo-Fr) von 8-18 Uhr stuendlich pruefen
0 8-18 * * 1-5 /opt/monitoring/check-services.sh

Crontab verwalten

Die Verwaltung von Cronjobs erfolgt ueber das crontab-Kommando. Mit wenigen Befehlen kannst du deine zeitgesteuerten Aufgaben anlegen, bearbeiten und ueberpruefen.

# Eigene Crontab bearbeiten
crontab -e

# Aktuelle Crontab anzeigen
crontab -l

# Alle Cronjobs loeschen (Vorsicht!)
crontab -r

# Crontab eines anderen Benutzers bearbeiten (als root)
crontab -u benutzername -e

# Cron-Daemon-Status pruefen
systemctl status cron

Spezielle Zeitangaben

Neben der klassischen Fuenf-Felder-Syntax bietet Cron praktische Abkuerzungen fuer haeufig verwendete Zeitpunkte. Diese machen die Konfiguration lesbarer und reduzieren Fehlerquellen.

Kurzform Bedeutung Entspricht
@reboot Einmal beim Systemstart -
@yearly Einmal pro Jahr 0 0 1 1 *
@monthly Einmal pro Monat 0 0 1 * *
@weekly Einmal pro Woche 0 0 * * 0
@daily Einmal pro Tag 0 0 * * *
@hourly Einmal pro Stunde 0 * * * *

Besonders nuetzlich ist @reboot: Damit kannst du Dienste oder Skripte automatisch nach einem Neustart ausfuehren, ohne sie als Systemdienst registrieren zu muessen.

Ausgabe und Fehlerbehandlung

Standardmaessig sendet Cron die Ausgabe eines Jobs per E-Mail an den Benutzer. In der Praxis ist es oft sinnvoller, die Ausgabe in eine Logdatei umzuleiten. So behaehlst du die Kontrolle und kannst Probleme besser nachvollziehen.

# Ausgabe in Logdatei umleiten (stdout und stderr)
0 3 * * * /home/admin/backup.sh >> /var/log/backup.log 2>&1

# Nur Fehler protokollieren
0 3 * * * /home/admin/backup.sh > /dev/null 2>> /var/log/backup-errors.log

# Alle Ausgaben unterdruecken
0 3 * * * /home/admin/backup.sh > /dev/null 2>&1

Die Umleitung 2>&1 sorgt dafuer, dass auch Fehlermeldungen (stderr) in die gleiche Datei wie die normale Ausgabe (stdout) geschrieben werden. Das ist wichtig, um bei Problemen alle relevanten Informationen zu haben.

Haeufige Anwendungsfaelle

Cronjobs sind vielseitig einsetzbar und gehoeren zum Standardrepertoire der Serveradministration. Die wichtigsten Einsatzgebiete umfassen automatisierte Backups, Systemwartung und Monitoring.

  • Backups: Automatische Sicherung von Datenbanken, Konfigurationsdateien und Benutzerdaten
  • Log-Rotation: Regelmaessiges Archivieren und Loeschen alter Logdateien
  • Systemupdates: Automatisches Einspielen von Sicherheitsupdates
  • Monitoring: Periodische Pruefung von Diensten, Festplattenplatz und Systemressourcen
  • Berichte: Automatischer Versand von taeglichen oder woechentlichen Statusberichten
  • Datensynchronisation: Regelmaessiger Abgleich zwischen Systemen oder mit Cloud-Speichern
  • Cache-Bereinigung: Loeschen temporaerer Dateien zur Speicherplatzfreigabe

Tipps und Best Practices

Bei der Arbeit mit Cronjobs gibt es einige Fallstricke, die du kennen solltest. Mit diesen Tipps vermeidest du typische Probleme und sorgst fuer zuverlaessige Ausfuehrung.

  • Absolute Pfade verwenden: Cronjobs laufen in einer minimalen Umgebung. Gib daher immer den vollstaendigen Pfad zu Skripten und Programmen an.
  • Umgebungsvariablen setzen: Die PATH-Variable ist eingeschraenkt. Definiere benoetigte Variablen am Anfang der Crontab.
  • Ausfuehrungsrechte pruefen: Stelle sicher, dass Skripte ausfuehrbar sind (chmod +x skript.sh).
  • Zeitzone beachten: Cron verwendet die Systemzeit. Bei Servern in anderen Zeitzonen kann das zu Verwirrung fuehren.
  • Ueberschneidungen vermeiden: Wenn ein Job laenger dauert als das Intervall, kann es zu parallelen Ausfuehrungen kommen. Nutze Lock-Dateien oder Tools wie flock.
  • Testen vor Produktiveinsatz: Fuehre neue Cronjobs zuerst manuell aus, um Fehler fruehzeitig zu erkennen.

Cronjobs in der IT-Praxis

Als Fachinformatiker fuer Systemintegration gehoeren Cronjobs zu deinem taeglichen Werkzeugkasten. Du wirst sie einsetzen, um Server zu warten, Backups zu automatisieren und Monitoring-Aufgaben zu planen. Auch in der Anwendungsentwicklung begegnest du ihnen regelmaessig, etwa fuer das Ausfuehren von Wartungsaufgaben in Webanwendungen oder das Verarbeiten von Daten im Hintergrund.

In modernen Infrastrukturen werden Cronjobs teilweise durch spezialisierte Scheduler wie Kubernetes CronJobs oder Job-Scheduling-Dienste in Cloud-Plattformen ersetzt. Das grundlegende Konzept und die Syntax bleiben jedoch gleich, weshalb das Verstaendnis klassischer Cronjobs eine wichtige Grundlage bildet.

Quellen und weiterfuehrende Links