Home / Tutorials / Linux / Cronjobs unter Linux - Automatisierung leicht gemacht

Cronjobs unter Linux - Automatisierung leicht gemacht _

Linux Veröffentlicht: 25. Mai 2025 Aktualisiert: 26. Mai 2025 Autor: SpeckiTime 182 Aufrufe
Cronjobs unter Linux

Einführung

Cronjobs sind ein mächtiges Werkzeug unter Linux, mit dem du wiederkehrende Aufgaben automatisieren kannst. Egal ob Backups, Systemupdates oder Datenbank-Cleanups - mit Cronjobs kannst du diese Aufgaben zu bestimmten Zeiten automatisch ausführen lassen, ohne manuelles Eingreifen.

Auf einen Blick

  • Cronjobs sind zeitgesteuerte Aufgaben unter Linux
  • Sie werden über die Crontab-Datei konfiguriert
  • Die Syntax folgt einem einfachen Zeitschema
  • Jeder Benutzer kann eigene Cronjobs einrichten

Voraussetzungen

Für dieses Tutorial benötigst du:

  • Einen Linux-Server oder eine Linux-Distribution (Ubuntu, Debian, CentOS, etc.)
  • Zugriff auf die Kommandozeile (Terminal)
  • Grundlegende Linux-Kenntnisse

Crontab-Grundlagen

Cronjobs werden in der sogenannten "Crontab" (Cron Table) gespeichert. Jeder Benutzer kann seine eigene Crontab haben. Um deine Crontab zu bearbeiten, verwende folgenden Befehl:

crontab -e

Beim ersten Aufruf wirst du möglicherweise nach deinem bevorzugten Editor gefragt (nano, vim, etc.).

Um die aktuelle Crontab anzuzeigen, ohne sie zu bearbeiten:

crontab -l

Crontab-Syntax

Die Syntax eines Cronjobs besteht aus 5 Zeitfeldern, gefolgt vom auszuführenden Befehl:

* * * * * Befehl

Die 5 Sternchen stehen für:

  1. Minute (0-59)
  2. Stunde (0-23)
  3. Tag des Monats (1-31)
  4. Monat (1-12)
  5. Wochentag (0-7, wobei 0 und 7 für Sonntag stehen)

Spezielle Zeichen in Crontab

  • * - Jeder Wert (z.B. jede Minute, jede Stunde)
  • , - Wertliste (z.B. 1,3,5)
  • - - Wertebereich (z.B. 1-5)
  • / - Schritte (z.B. */5 = alle 5 Einheiten)

Beispiele für Cronjobs

Hier sind einige praktische Beispiele für Cronjobs:

Täglich um Mitternacht ein Backup erstellen:

0 0 * * * /pfad/zum/backup-script.sh

Jeden Montag um 8:30 Uhr System-Updates durchführen:

30 8 * * 1 apt update && apt upgrade -y

Alle 5 Minuten einen Dienst überprüfen:

*/5 * * * * systemctl is-active myservice.service || systemctl restart myservice.service

Am 1. und 15. jeden Monats eine Aufgabe ausführen:

0 12 1,15 * * /pfad/zum/script.sh

Cronjob-Generator

Um dir die Erstellung von Cronjobs zu erleichtern, habe ich einen einfachen Generator erstellt. Wähle einfach die gewünschten Zeiten aus und erhalte den fertigen Cronjob-Befehl:

Cronjob-Generator _

* * * * * /pfad/zum/script.sh

Tipps und Tricks

Umgebungsvariablen

Die Umgebung, in der Cronjobs laufen, unterscheidet sich von deiner normalen Shell. Wenn dein Skript Umgebungsvariablen benötigt, solltest du diese in der Crontab definieren:

PATH=/usr/local/bin:/usr/bin:/bin
HOME=/home/username

# Deine Cronjobs folgen hier
* * * * * /pfad/zum/script.sh

Ausgabe umleiten

Standardmäßig sendet Cron die Ausgabe deiner Befehle per E-Mail an den Benutzer. Du kannst die Ausgabe auch in eine Datei umleiten:

0 0 * * * /pfad/zum/script.sh > /pfad/zur/logdatei.log 2>&1

Fehlersuche

Wenn dein Cronjob nicht wie erwartet funktioniert, überprüfe die Cron-Logs:

grep CRON /var/log/syslog

Alternativen zu Cron

Neben dem klassischen Cron gibt es auch einige moderne Alternativen:

  • Systemd Timer: Eine moderne Alternative für Systeme, die systemd verwenden
  • Anacron: Führt verpasste Jobs nach, wenn der Computer zum geplanten Zeitpunkt ausgeschaltet war
  • Fcron: Unterstützt komplexere Zeitpläne und kann verpasste Jobs nachholen
  • Jenkins: Eine umfangreiche Lösung für komplexe Aufgaben und CI/CD-Pipelines

Hinweis: Ich habe mit diesen Alternativen bisher keine umfangreichen Erfahrungen gemacht, möchte sie aber der Vollständigkeit halber hier erwähnen. Für die meisten Anwendungsfälle bietet der klassische Cron-Dienst bereits alle benötigten Funktionen.

Linux Cronjob Crontab Automatisierung Server

Weitere Tutorials _

Ubuntu Server 24.04 LTS Installation

Ubuntu Server 24.04 LTS Installation

Weiterlesen
SSL/TLS Zertifikate mit Let's Encrypt

SSL/TLS Zertifikate mit Let's Encrypt

Weiterlesen
Bash-Skripte für Systemadministratoren

Bash-Skripte für Systemadministratoren

Weiterlesen