Sprache auswählen

Cronjob läuft nicht? Häufige Ursachen und Lösungen

Wenn dein Cronjob nicht ausgeführt wird, bist du nicht allein. Dies ist eines der häufigsten Probleme auf Linux-Systemen. Die meisten Ursachen lassen sich in wenige Kategorien einteilen — und alle sind leicht zu debuggen, sobald man weiß, wo man suchen muss.

Häufige Ursachen

📝

Falsche Cron-Syntax

Ein kleiner Fehler im Schedule-Ausdruck verhindert die Ausführung still und leise. Selbst ein fehlendes Leerzeichen oder eine falsche Feldanzahl stoppt den Job.

🔐

Fehlende Berechtigungen

Das Skript hat möglicherweise keine Ausführungsrechte, oder der Cron-User hat keinen Zugriff auf benötigte Dateien oder Verzeichnisse.

🌍

Umgebungsunterschiede

Cron läuft mit minimaler Umgebung — kein $PATH, keine Aliases, kein .bashrc. Befehle, die in der Shell funktionieren, schlagen in Cron oft still fehl.

📭

Ausgabe nicht erfasst

Cron verwirft stdout und stderr standardmäßig. Ohne explizite Log-Umleitung sind Fehler vollständig unsichtbar.

🔄

Cron-Daemon läuft nicht

Auf manchen Systemen ist der Cron-Daemon gestoppt oder deaktiviert — alle Jobs werden dann still nicht ausgeführt.

🕐

Zeitzonenprobleme

Cron verwendet die System-Zeitzone. Läuft dein Server in UTC, werden Jobs möglicherweise zu unerwarteten lokalen Zeiten ausgeführt.

Wie du debuggen kannst

1. Prüfen ob der Cron-Daemon läuft

systemctl status cron        # Debian/Ubuntu
systemctl status crond       # RHEL/CentOS/Fedora

2. Aktuelle Cron-Log-Einträge anzeigen

grep CRON /var/log/syslog | tail -30
# oder auf Systemen mit journald:
journalctl -u cron --since "1 hour ago"

3. Crontab überprüfen

crontab -l               # aktueller User
sudo crontab -l -u root  # root-Crontab
ls /etc/cron.d/          # systemweite Einträge

4. Skript-Berechtigungen prüfen

ls -la /pfad/zum/skript.sh
chmod +x /pfad/zum/skript.sh

5. Mit Cron-Umgebung testen

env -i HOME=/root SHELL=/bin/bash \
  PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
  /bin/bash -c 'dein-befehl-hier'

6. Ausgabe im Crontab-Eintrag erfassen

# stdout und stderr in eine Log-Datei schreiben:
* * * * * /pfad/zum/skript.sh >> /var/log/meinJob.log 2>&1

Künftige Probleme verhindern mit Monitoring

Manuelles Debugging kostet Zeit. Ein Cron-Monitoring-Tool liefert Ausführungshistorie, Ausgabe-Logs und Fehlerbenachrichtigungen automatisch — sodass du sofort weißt, wenn etwas schiefläuft, ohne SSH-Zugriff.

📋

Ausführungshistorie

Jeder Lauf mit Exit-Code, Dauer und vollständiger Ausgabe gespeichert. Kein manuelles Log-Durchsuchen mehr.

🔔

Sofortige Alerts

E-Mail-Benachrichtigung sobald ein Job fehlschlägt. Probleme erkennen, bevor sie Auswirkungen haben.

🖥️

Multi-Server-Übersicht

Alle Cron-Jobs auf allen Servern in einem Dashboard. Kein SSH zum Statusprüfen erforderlich.

Cron-Jobs jetzt überwachen

CronManager ist kostenlos, quelloffen und selbst gehostet. Mit Docker in Minuten deployen.

Mit Docker installieren →