Dokumentation
Schnellstart + Funktionsbeschreibung für jeden Bereich und jedes Gerät (wird laufend erweitert)
Geplante Aufgaben (Cron)
Dieser Artikel erklärt, wie du geplante Aufgaben auf Zielservern verwaltest.
Zuerst verstehen: Was ist Cron
Cron ist das in Linux integrierte Werkzeug für „zeitgesteuerte Ausführung“. Du kannst damit „jeden Tag um 3 Uhr nachts automatisch die Datenbank sichern“, „jede Stunde die Protokolle aufräumen“ oder „jeden Montag einen Dienst neu starten“ – es läuft automatisch zur festgelegten Zeit, ohne dass jemand daneben sitzen muss.
Funktionsüberblick
Cron-Aufgaben auf Zielservern ansehen, hinzufügen und löschen.
Anwendungsfälle
- Datenbanken zeitgesteuert sichern, Protokolle aufräumen
- Überwachungsskripte zeitgesteuert ausführen
- Dienste zeitgesteuert neu starten, Zertifikate erneuern
Verwendung
Auf einem Server „Systemverwaltungspanel → Geplante Aufgaben“ öffnen; dort siehst du alle aktuellen Cron-Aufgaben dieses Servers.
Aufgabe hinzufügen
Cron-Ausdruck und auszuführenden Befehl eintragen:
| Feld | Beschreibung |
|---|---|
| Zeitausdruck | 5 Felder, z. B. 0 3 * * * (jeden Tag um 3 Uhr nachts) |
| Befehl | Der auszuführende Shell-Befehl |
Format des Cron-Ausdrucks (Minute Stunde Tag Monat Wochentag):
* * * * * Befehl │ │ │ │ │ │ │ │ │ └── Wochentag (0-7, 0/7=Sonntag) │ │ │ └──── Monat (1-12) │ │ └────── Tag (1-31) │ └──────── Stunde (0-23) └────────── Minute (0-59)
Häufige Beispiele:
| Ausdruck | Bedeutung |
|---|---|
*/5 * * * * | alle 5 Minuten |
0 * * * * | jede Stunde |
0 3 * * * | jeden Tag um 3 Uhr nachts |
0 3 * * 1 | jeden Montag um 3 Uhr nachts |
0 3 1 * * | am 1. jedes Monats um 3 Uhr nachts |
0 3 * * 0 | jeden Sonntag um 3 Uhr nachts |
30 2 * * * | jeden Tag um 2:30 Uhr nachts |
Praktische Befehlsbeispiele:
# Jeden Tag um 3 Uhr nachts die Datenbank sichern (Beispiel) 0 3 * * * docker exec sshe-mysql mariadb-dump -uroot -p'<Passwort>' dbname > /opt/backup/db-$(date +\%F).sql # Alle 6 Stunden temporäre Dateien aufräumen 0 */6 * * * find /tmp -type f -mtime +7 -delete # Jeden Montag um 4 Uhr nachts einen Dienst neu starten 0 4 * * 1 systemctl restart my-app
Hinweise
1. Cron-Aufgaben laufen unter dem aktuellen Benutzer des Zielservers; stelle sicher, dass dieser Benutzer die Rechte zum Ausführen der Befehle hat.
2. In Befehlen werden absolute Pfade empfohlen (die Cron-Umgebung hat wenige Variablen, relative Pfade finden das Programm möglicherweise nicht).
3. Ein % in einem Befehl muss als \% maskiert werden (Cron behandelt % als Sonderzeichen).
4. Nach dem Löschen einer Cron-Aufgabe gilt die Änderung sofort.
5. Das Ändern systemweiter Cron-Einträge (/etc/crontab) erfordert möglicherweise Arbeit außerhalb des Panels; das Panel verwaltet standardmäßig das crontab -l des aktuellen Benutzers.