Debian Cronjobs werden nicht ausgeführt – diese Tricks helfen!

Hinweis vorab: Es geht hier nicht um die automatisierten Aufgaben bzw. Tasks (auch Cronjobs genannt), die der jeweilige User eines Servers mittels bspw. crontab -e festlegen und bearbeiten kann, sondern um die Jobs, die man als root unter /etc/ in den jeweiligen cron.* Verzeichnissen bzw. direkt unter /etc/crontab einrichtet.

Inhalt


 

Zusammengefasst:

Wenn die als root hinterlegten Cronjobs auf einem Debian Server nicht ausgeführt werden, dann liegt das entweder an falschen Berechtigungen oder an falschen Dateinamen.


 

Falsche Berechtigungen:

Die Verzeichnisse /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/ und /etc/cron.monthly/ enthalten direkt ausführbare Dateien, die regelmäßig (gemäß Regelung in der /etc/crontab) abgearbeitet werden.

Daher wird auch für jede Datei in diesem Ordner die Berechtigung zum Ausführen benötigt. Leider ist dieses scheinbar bei einem frisch installierten Debian (in meinem Fall Wheezy 7.8) nicht der Fall. Daher einmal folgenden Befehl ausführen:

chmod 755 /etc/cron.{hourly,daily,weekly,monthly}/*

Das Verzeichnis /etc/cron.d/ hingegen enthält Dateien, die den gleichen Aufbau wie /etc/crontab enthalten. Diese müssen nicht ausführbar sein. Ich persönlich belasse die Datei /etc/crontab unverändert und trage alle weiteren Jobs in separaten Dateien im Verzeichnis /etc/cron.d/ ein, aber das ist natürlich Geschmackssache.


 

Falsche Dateinamen:

Für alle Dateien in allen /etc/cron.*/ Verzeichnissen gilt: Punkte im Dateinamen sind nicht erlaubt. Das steht auch beispielsweise sehr schön auf der Wiki Seite von ubuntuusers.de beschrieben (Ubuntu basiert ja auf Debian):

Der Skriptname darf nur große und kleine Buchstaben, Ziffern, Unterstriche und Bindestriche enthalten. Andernfalls wird das Skript nicht ausgeführt. Das exakte Zeichenalphabet wird durch folgenden regulären Ausdruck definiert: „^[a-zA-Z0-9_-]+$“. Punkt und Umlaute sind also beispielsweise nicht erlaubt.

Das Problem ist, dass man ja meint man kennt sich mit dem „simplen Thema“ Cronjobs aus und eventuell erst gar nicht merkt, dass einige Jobs nicht ausgeführt werden. Da hilft ein Blick in die /var/log/syslog in der alle ausgeführten Cronjobs protokolliert werden.


Da es bei mir ein wenig gedauert hat bis ich überhaupt dahinter gekommen bin, dass es Probleme gibt, hoffe ich Euch mit dieser kurzen Zusammenfassung geholfen zu haben.

Das könnte dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte beachte die Hinweise zum Datenschutz