Wie finde ich heraus, warum Cron meine Jobs nicht ausführt?

Wie finde ich heraus, warum Cron meine Jobs nicht ausführt?

Ich verwende Ubuntu 14.04 und der Cron-Daemon läuft:

# ps ax | grep cron
822 ?        Ss     0:00 cron

aber es werden keine Jobs ausgeführt. Ich habe vorher Einträge /var/log/syslogwie diese erhalten:

2014-05-04T11:47:01.839754+01:00 localhost CRON[29253]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ))

aber jetzt gibt es keine Cron-bezogenen Einträge. Ich habe auch Einträge wie diesen erhalten in /var/log/auth.log:

2014-05-04T11:47:01.839183+01:00 localhost CRON[29252]: pam_unix(cron:session): session opened for user root by (uid=0)
2014-05-04T11:47:13.495691+01:00 localhost CRON[29252]: pam_unix(cron:session): session closed for user root

Aber nochmals, jetzt gibt es keine Cron-bezogenen Einträge.

Mir ist nicht bekannt, dass sich etwas geändert hat. Ich habe versucht, Cron neu zu starten:

# service cron restart
cron stop/waiting
cron start/running, process 24907

Ich habe versucht, mithilfe crontab -evon einen Cron-Job hinzuzufügen, * * * * * date >> /tmp/somefilewas funktioniert hat, aber dabei wurde eine neue Crontab in installiert /var/spool/cron/crontabs/root, obwohl ich möchte, dass Cron die Datei in verwendet /etc/crontab.

Gibt es eine Debug-Option, die ich verwenden kann, oder irgendwo ein Protokoll, das möglicherweise eine Fehlermeldung enthält, die ich untersuchen kann?

Antwort1

Um Ihnen bei der Fehlerbehebung Ihrer cronJobs weiter zu helfen, sollten Sie Ihre E-Mails überprüfen. Diese werden normalerweise in einer Datei wie /var/mail/<user_name>oder gespeichert /var/spool/mail/<user_name>.

Diese beiden Dateien sind auf meiner Debian-Box eigentlich Hardlinks, aber ich weiß nicht, ob das Standard ist.

Erläuterung

Von der cron(8)Seite:

Bei der Ausführung von Befehlen wird die gesamte Ausgabe an den Besitzer der Crontab gesendet (oder an den in der Umgebungsvariablen MAILTO in der Crontab genannten Benutzer, sofern vorhanden).

Antwort2

Sie haben gezeigt, dass es keine Crontab für Root gibt. Haben Benutzer einen Crontab-Eintrag? Wenn Sie nur Root verwenden, können Sie auch die folgenden Verzeichnisse überprüfen: /etc/cron.daily/ - /etc/cron.hourly/ - /etc/cron.monthly/ - /etc/cron.weekly

Auf meinem Rechner (CentOS 6.4) habe ich mlocate.cron im Verzeichnis /etc/cron.daily/ und cron führt dieses Skript täglich aus.

also denke ich, dass Sie nur Cron-Jobs hinzufügen müssen.

Antwort3

Ich habe dies gelöst, indem ich die Berechtigungen wie /etc/crontabfolgt geändert habe:

-rw-r--r-- 1 root root 778 May 10 21:31 /etc/crontab

Vorher war es -rw-rw-r--. Das war die einzige Änderung. Es hat nicht funktioniert, jetzt funktioniert es. Ich bin mir immer noch nicht sicher, warum.

Antwort4

Ich hatte auch ein ähnliches Problem, aber nachdem ich den Root als Benutzer angegeben hatte /etc/crontab, wurde der Cron-Job ausgelöst.

Dies kann an der Syntax liegen, crontab -edie sich von der unterscheidet /etc/crontab.

verwandte Informationen