1. Was ist Cron?
Cron ist ein zeitbasierter Job-Scheduler für Linux- und Unix-basierte Betriebssysteme. Es wird hauptsächlich von Systemadministratoren und Entwicklern verwendet, um Aufgaben zu automatisieren, die regelmäßig ausgeführt werden müssen. Auch unter Ubuntu ist Cron standardmäßig installiert und wird in verschiedenen Bereichen wie Serververwaltung, Backups und der regelmäßigen Ausführung von Skripten eingesetzt.
Wie funktioniert Cron?
Cron funktioniert, indem es Befehle in einer Datei namens „crontab“ speichert, die zu bestimmten Zeiten oder in bestimmten Intervallen ausgeführt werden. Die Crontab-Datei besteht aus fünf Feldern, die jeweils eine bestimmte Zeitangabe enthalten. Dadurch kann der Zeitpunkt der Ausführung von Aufgaben genau definiert werden.
- Minute (0–59)
- Stunde (0–23)
- Tag des Monats (1–31)
- Monat (1–12)
- Wochentag (0–7, wobei 0 und 7 für Sonntag stehen)
Beispielsweise kann eine Aufgabe wie „Tägliche Sicherung um 5 Uhr morgens ausführen“ in der Crontab-Datei wie folgt definiert werden:
0 5 * * * tar -zcf /var/backups/home.tgz /home/
Auf diese Weise können wiederkehrende Aufgaben effizient automatisiert werden – eine der größten Stärken von Cron.
Wer sollte Cron verwenden?
Cron ist ein unverzichtbares Werkzeug für Systemadministratoren, Entwickler, die ihre täglichen Aufgaben effizienter gestalten möchten, und für alle, die regelmäßig Skripte auf einem Server ausführen müssen.

2. Einrichtung eines Cron-Jobs
Bearbeiten der Crontab-Datei
Um einen Cron-Job einzurichten, muss zunächst die „crontab“-Datei bearbeitet werden. Unter Ubuntu kann dies mit dem folgenden Befehl geschehen:
crontab -e
Grundlegende Syntax eines Cron-Jobs
Ein Cron-Job besteht aus einer Zeitangabe und dem auszuführenden Befehl. Das allgemeine Format ist wie folgt:
Minute Stunde Tag Monat Wochentag Befehl
Beispielsweise definiert der folgende Cron-Job eine tägliche Sicherung des /home/
-Verzeichnisses um 5 Uhr morgens:
0 5 * * * tar -zcf /var/backups/home.tgz /home/
Speichern und Überprüfen der Crontab-Datei
Nach dem Hinzufügen eines Jobs in die Crontab-Datei müssen die Änderungen gespeichert und der Editor geschlossen werden. Um zu überprüfen, ob die Cron-Jobs korrekt übernommen wurden, kann folgender Befehl verwendet werden:
crontab -l
3. Erweiterte Zeitplanung mit Cron
Jobs in benutzerdefinierten Zeitintervallen ausführen
Um Cron-Jobs in spezifischen Intervallen auszuführen, können folgende Einstellungen verwendet werden:
- Jede Minute ausführen:
* * * * * /path/to/script.sh
- Alle 5 Minuten ausführen:
*/5 * * * * /path/to/script.sh
Jobs an bestimmten Wochentagen oder Uhrzeiten ausführen
Um einen Job nur an bestimmten Tagen oder Uhrzeiten auszuführen, können spezifische Werte für den Wochentag angegeben werden. Zum Beispiel, um ein Skript jeden Montag um 2:15 Uhr morgens auszuführen:
15 2 * * 1 /path/to/script.sh
4. Fehlerbehebung und Troubleshooting
Häufige Probleme mit Cron-Jobs und deren Lösungen
Job wird nicht ausgeführt
Falls ein Cron-Job nicht ausgeführt wird, sollten folgende Punkte überprüft werden:
- Berechtigungen prüfen: Hat das Skript oder der Befehl die erforderlichen Ausführungsrechte?
- Vollständige Pfade angeben: Da Cron eine eingeschränkte
$PATH
-Variable hat, sollten vollständige Pfade zu Skripten und Befehlen angegeben werden.
/usr/bin/python3 /path/to/script.py
5. Sicherheitsaspekte
Steuerung des Benutzerzugriffs
Um zu kontrollieren, welche Benutzer Cron-Jobs ausführen dürfen, können die Dateien /etc/cron.allow
und /etc/cron.deny
verwendet werden. Wenn ein Benutzername in /etc/cron.allow
aufgeführt ist, darf dieser Benutzer Cron-Jobs konfigurieren.
echo "user_name" >> /etc/cron.allow
Sicherheit beim Ausführen von Cron-Jobs
Um Authentifizierungsprobleme beim Ausführen von Cron-Jobs zu vermeiden, ist es oft notwendig, SSH-Schlüssel zu automatisieren oder ein sicheres Passwort-Management zu verwenden.
6. Verwendung von Anacron: Für weniger häufige Aufgaben
Was ist Anacron?
Anacron ist ein Job-Scheduler, der für Systeme gedacht ist, die nicht kontinuierlich laufen. Falls das System während der geplanten Cron-Ausführung ausgeschaltet war, wird die Aufgabe beim nächsten Hochfahren ausgeführt. Dies ist ideal für regelmäßige Aufgaben auf Desktop-PCs oder Laptops.
7. Praktische Anwendungsfälle für Cron-Jobs
Automatische Backups
Ein Beispiel für die Einrichtung eines Cron-Jobs für regelmäßige Backups.
0 2 * * * tar -zcf /var/backups/home_backup_$(date +%Y-%m-%d).tgz /home/
8. Fazit
Mit Cron und Anacron können wiederkehrende Aufgaben effizient automatisiert werden, wodurch die Systemwartung zuverlässiger und einfacher wird. Die richtige Nutzung dieser Tools kann Betriebskosten senken und wichtige Wartungsaufgaben automatisieren. Implementieren Sie sie in Ihrem System und erleben Sie deren Vorteile in der Praxis.