⏰ Cronjobs unter Linux – Zeitgesteuerte Aufgaben automatisieren
Cronjobs sind geplante Aufgaben, die zu bestimmten Zeiten automatisch auf einem Linux-System ausgeführt werden. Sie sind extrem hilfreich für Wartung, Backups, Monitoring oder automatisierte Prozesse – ohne menschliches Zutun.
? Inhaltsverzeichnis
- ? Was ist ein Cronjob?
- ? Speicherort & Struktur
- ⌛ Syntax der Crontab
- ? Cronjob anlegen
- ? Cronjob anzeigen, bearbeiten, löschen
- ? Beispiele für Cronjobs
- ? Cron-Output & Logs
- ? Mögliche Fehlerquellen
- ?️ Sicherheitshinweise
- ? Weiterführende Links
? 1. Was ist ein Cronjob?
Ein Cronjob ist ein zeitgesteuerter Task, der regelmäßig oder zu einem bestimmten Zeitpunkt durch den Cron-Daemon (cron
) ausgeführt wird. Das kann z. B. ein Skript, ein Backup, ein Systembefehl oder ein Update sein.
? 2. Speicherort & Struktur
- Benutzerdefinierte Cronjobs:
crontab -e
- Systemweite Jobs:
/etc/crontab
/etc/cron.d/
/etc/cron.daily/
,cron.hourly/
,cron.weekly/
⌛ 3. Syntax der Crontab
bashKopierenBearbeiten# ┌──────── Minute (0 - 59)
# │ ┌────── Stunde (0 - 23)
# │ │ ┌──── Tag des Monats (1 - 31)
# │ │ │ ┌── Monat (1 - 12)
# │ │ │ │ ┌─ Wochentag (0 - 7) (Sonntag = 0 oder 7)
# │ │ │ │ │
# │ │ │ │ │
# * * * * * Befehl
Beispiel:
bashKopierenBearbeiten0 3 * * * /home/user/backup.sh
→ Führt das Skript jeden Tag um 3:00 Uhr aus.
? 4. Cronjob anlegen
- Editor öffnen:bashKopierenBearbeiten
crontab -e
- Job hinzufügen (z. B.):bashKopierenBearbeiten
0 12 * * 1 /home/user/cleanup.sh
→ Skript wird jeden Montag um 12:00 Uhr ausgeführt. - Änderungen werden automatisch gespeichert.
? 5. Cronjobs anzeigen, bearbeiten, löschen
Aktion | Befehl |
---|---|
Anzeigen | crontab -l |
Bearbeiten | crontab -e |
Löschen | crontab -r |
Für bestimmten Benutzer (als root) | crontab -u benutzername -l |
? 6. Beispiele für Cronjobs
Zeitplan | Bedeutung | Beispiel |
---|---|---|
* * * * * | Jede Minute | echo "Ping" |
0 */6 * * * | Alle 6 Stunden | Logrotate |
30 2 * * 7 | Jeden Sonntag 2:30 Uhr | Backup |
0 9-17 * * 1-5 | Jede Stunde 9–17 Uhr, Mo–Fr | Arbeitszeit |
? 7. Cron-Output & Logs
Standardmäßig werden Ausgaben per Mail an den Benutzer gesendet (sofern Maildienst vorhanden). Alternativ:
bashKopierenBearbeiten* * * * * /script.sh >> /var/log/script.log 2>&1
>>
: Anhängen an Datei2>&1
: Fehlerausgabe zu Standardausgabe umleiten
Log prüfen (abhängig vom System):
bashKopierenBearbeitengrep CRON /var/log/syslog # Debian/Ubuntu
journalctl -u cron # systemd-Systeme
? 8. Mögliche Fehlerquellen
- Pfade stimmen nicht (absolute Pfade nötig!)
- Umgebungsvariablen fehlen (
$PATH
) - Ausführungsrechte fehlen (
chmod +x
) - Interaktive Befehle (z. B.
read
) funktionieren nicht
?️ 9. Sicherheitshinweise
- Skripte in sichere Verzeichnisse ablegen
- Keine sensiblen Daten in der Crontab
- Rechte mit
chmod
/chown
kontrollieren cron.allow
undcron.deny
nutzen für Benutzerverwaltung
? 10. Weiterführende Links
- ? Ubuntu Cron Guide
- ? Arch Wiki zu Cron
- ? YouTube-Suche: „Cronjob Tutorial Linux“