Seltsames Timing-Verhalten

460
Alexandre Lavoie

Ich muss alle 5 Minuten einen CRON für einen bestimmten Benutzer ausführen. example.comDas Skript ist eine PHP-Datei.

Datei: /var/spool/cron/crontabs/example.com

/5 * * * * /usr/bin/php -f /home/example.com/public_html/cron.php 

Nichts passiert (kein Fehler im Protokoll, keine Fehler-E-Mail, nichts). Gleiches beim Testen mit:

0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/bin/php -f /home/example.com/public_html/cron.php 

Natürlich funktioniert das manuelle Ausführen der Datei. Das CRON jede Minute zu ändern, funktioniert auch:

* * * * * /usr/bin/php -f /home/example.com/public_html/cron.php 

Beim gleichen Startzeitpunkt (5 Minuten), aber als root, läuft es einwandfrei (/ var / spool / cron / crontabs / root statt /var/spool/cron/crontabs/example.com).

Ich habe auf Slackware 12.0 und Slackware 14.0 getestet ... dasselbe Problem.

0
Installieren Sie die neue Crontab mit `crontab -e`, die das Format auf Probleme überprüft? Oder greifen Sie mit Ihrem Editor direkt auf die Datei zu? John1024 vor 9 Jahren 0
@ John1024-Dateibearbeitung mit `vi` oder mit` webmin` (beide getestet). Auch getestet "crontab -u example.com -e" ... kein Glück mehr. Alexandre Lavoie vor 9 Jahren 0
Wenn dieser Befehl die letzte Zeile in der Crontab-Datei ist und am Ende keinen Wagenrücklauf hat, wird er nicht ausgeführt. Dies ist nur ein Schuss im Dunkeln, aber ich hatte es in der Vergangenheit erlebt und verbrachte Stunden damit, das Problem herauszufinden, und alles, was es war, war, dass ich am Ende der Zeile nicht die EINGABETASTE gedrückt habe. Komisch, ich weiß, aber es ist mir passiert. Widgeteye vor 8 Jahren 0

1 Antwort auf die Frage

0
John1024

crontab -e sagt mir, dass dies ein Fehler ist ("schlechte Minute ... Fehler in der crontab-Datei, Installation nicht möglich"):

/5 * * * * /usr/bin/php 

Andererseits akzeptiert und führt es das Programm alle 5 Minuten aus:

0-59/5 * * * * /usr/bin/php 

Dies wird ebenfalls akzeptiert und das Programm läuft alle 5 Minuten ab:

0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/bin/php 

Wie benutzt man crontab -e

crontab -eÖffnet die aktuelle Crontab mit dem Editor, der in den Umgebungsvariablen VISUAL oder EDITOR angegeben ist, sofern eine oder /usr/bin/editorkeine vorhanden ist. Nach der Bearbeitung, aber vor der Installation der überarbeiteten Datei, wird das Format überprüft. Wenn Probleme gefunden werden, werden Fehler gemeldet und es wird vorgeschlagen, die Datei entweder erneut zu bearbeiten oder Crontab zu verlassen.

Häufige Probleme mit Cron

Ein Community-Wiki mit vielen Informationen zu häufig auftretenden Problemen cronist:

Ich habe wahrscheinlich einen Fehler mit "/ 5" gemacht, aber ich habe gesagt, dass ich auch "* / 5" getestet habe. Der Punkt ist, dass '0,5,10, ...' gültig ist, aber NUR funktioniert, wenn er in der Root-Datei verwendet wird (also als root ausgeführt wird). Wenn sie in der Website-Benutzerdatei verwendet wird, funktioniert sie ein- oder zweimal und sonst nichts. Alexandre Lavoie vor 9 Jahren 0
Sie laufen gut für mich als normaler Benutzer. Welche cron-bezogenen Nachrichten sehen Sie in `/ var / log` für Nachrichten? Haben Sie Cron eingerichtet, um im Fehlerfall E-Mails zu versenden? John1024 vor 9 Jahren 0
Es ist so konfiguriert, dass im Fehlerfall E-Mails gesendet werden, jedoch kein E-Mail-Fehler oder protokollierter Fehler (/ var / log / cron ist leer). Alexandre Lavoie vor 9 Jahren 0
@AlexandreLavoie OK. Wenn die Protokolldateien keine Informationen enthalten und das E-Mail-System ausfällt, müssen wir härter arbeiten. Versuchen Sie, stdout und stderr folgendermaßen umzuleiten: `0,5,10,15,20,25,30,35,40,45,50,55 * * * * / usr / bin / php -f / home / example. de / public_html / cron.php> $ HOME / my.log 2> & 1`. Solange es nicht funktioniert, können Sie _only_ `crontab -e` verwenden, um Änderungen an einer Crontab vorzunehmen. John1024 vor 9 Jahren 0