Überprüfen, ob crontab funktioniert
Ich möchte überprüfen, ob eine bestimmte crontab richtig funktioniert. Ich habe einen Job wie diesen hinzugefügt:
*/2 * * * * /path_to_my_php_script/info.php >/dev/null 2>&1
Ich weiß, dass ich auf das Null-Gerät umleite, aber ich bin nicht sicher, ob der obige Befehl gut ist.
*Edit 1: In meinem /var/log/syslog habe ich alle zwei Minuten den folgenden Fehler:
(CRON) error (grandchild #2788 failed with exit status 2)
*Edit 2: Keine Fehler in den Protokollen mit diesem neuen Job:
*/2 * * * * /usr/bin/php /path_to_my_php_script/info.php >/dev/null 2>&1
82
3
Die Syntax für den crontab-Eintrag sieht korrekt aus. Wenn Sie Ihre crontab mit "
crontab -e
" bearbeiten (was Sie tun sollten), erhalten Sie einen Fehler, wenn Sie einen syntaktisch ungültigen crontab-Eintrag angeben.Erstens: Läuft
/path_to_my_php_script/info.php
auf der Kommandozeile korrekt?Wenn ja, läuft es dann auch korrekt so?:
Schritt (3) ähnelt der Art und Weise, wie cron Ihr Programm ausführt (wie in "man 5 cron" dokumentiert).
Das wahrscheinlichste Problem, das Sie haben, ist, dass der PATH, den cron zur Ausführung Ihres Programms verwendet, zu restriktiv ist. Fügen Sie daher am Anfang Ihres crontab-Eintrags etwas wie das Folgende ein (Sie müssen alle Verzeichnisse hinzufügen, die Ihr Skript benötigt):
Beachten Sie auch, dass cron standardmäßig
/bin/sh
verwendet, nicht bash. Wenn Sie Bash benötigen, fügen Sie dies ebenfalls am Anfang Ihrer crontab-Datei hinzu:Beachten Sie, dass diese beiden Änderungen alle crontab-Einträge betreffen. Wenn Sie diese Werte nur für Ihr "info.php"-Programm ändern wollen, können Sie so vorgehen:
Es ist auch erwähnenswert, dass auf einem System, das für "mail" konfiguriert ist (mit anderen Worten ein System, das einen MTA konfiguriert hat [sendmail/postfix/etc]), alle Ausgaben von crontab-Programmen automatisch per E-Mail an Sie gesendet werden. Ein Standard-Ubuntu-Desktop-System wird keine lokale E-Mail konfiguriert haben, aber wenn Sie auf einem Server arbeiten, können Sie einfach "mail" in einem Terminal eingeben, um all diese Cron-Mails zu sehen. Dies gilt auch für den Befehl "
at
".Leiten Sie die Fehlerausgabe nicht nach /dev/null und grep /var/log/syslog für Cron-Ausgaben um.
Sie können Fehler beim Speichern einer Datei sofort anzeigen, nachdem Sie
/etc/crontab
oder Dateien innerhalb von/etc/cron.d/
mit bearbeitet haben:Wenn die Bearbeitung in Ordnung ist, sehen Sie nur den
RELOAD
-Hinweis, Fehler werden wie folgt angezeigtSie können Ihr aktives cron mit dem Terminalbefehl sehen:
Hier sind die Parameter der Reihe nach:
min (0 - 59)
Stunde (0 - 23)
Tag des Monats (1 - 31)
Monat (1 - 12)
Tag der Woche (0 - 6) (Sonntag=0)
Befehl
Sie rufen Ihr Skript also jede erste Minute einer jeden Stunde auf. Zu Testzwecken sollten Sie die Ausgabe in kürzeren Abständen testen:
So wird es jede Minute aufgerufen!