Cron-Job läuft nicht?

24

Ich habe eine Crontab-Datei, die so aussieht:

* * * * * /home/abliskovs/update/update.sh

Wenn ich jedoch im Syslog nachprüfe, ob der Job ausgeführt wurde, gibt es keinen Hinweis darauf, dass er jemals ausgeführt wurde. Wie kann ich überprüfen, ob es läuft?

crontab -l gibt Folgendes aus:

* * * * * /home/abliskovs/update/update.sh

Alex Bliskovsky
quelle
OK, das habe ich getan.
Alex Bliskovsky
Vielleicht eine blöde Frage, aber es ist mir schon mal passiert, also werde ich sowieso fragen. Stellen Sie sicher, dass der Cron-Daemon tatsächlich ausgeführt wird! : P Die zweite Annahme sind Berechtigungen. Stellen Sie sicher, dass sie vom Benutzer ausgeführt werden können, der den Cronjob ausführt.
Mattias Ahnberg

Antworten:

21

Fügen Sie am Ende Ihres crontab-Eintrags ein >> / tmp / testlog.log hinzu (um die Ausgabe in eine Datei umzuleiten, die Sie untersuchen oder überprüfen können, ob sie ausgeführt wird, würde zusätzlich eine 2> & 1-Ausgabe von der Fehlerkonsole enthalten).

Beispiel

0 * * * * /home/abliskovs/update/update.sh 2> & 1 /tmp/testlog.log

Stellen Sie auch Folgendes sicher:

  • Fügen Sie Cronjobs in der richtigen Weise hinzu. Wenn Sie crontab -e in Ihrem eigenen Konto verwendet haben, werden Skripte mit Ihrem Benutzer ausgeführt (und daher hat der Eintrag crontab ein Feld weniger - den Benutzer, der es ausführt, wie dies bekannt ist). Wenn Sie die oben angeführte Datei einfach nach /etc/cron.d kopiert haben, schlägt dies fehl, da Sie keinen Benutzer angegeben haben (oder vielmehr keinen Benutzer mit dem Namen "bash" gefunden haben).
  • Stellen Sie sicher, dass die Skriptdatei ausführbar ist. Andernfalls wird sie nicht ausgeführt.
  • Laden Sie den sudo-Dienst für Cron-Jobs neu oder starten Sie den Cron-Dienst neusudo /etc/init.d/cron restart

Wie mache ich eine Datei ausführbar?

Mehrere Möglichkeiten, um Ihre Datei ausführbar zu machen

chmod +x /home/abliskovs/update/update.sh 

chmod -R 0755 /home/abliskovs/update/update.sh

chmod a+x /home/abliskovs/update/update.sh
Md Mahbubur Rahman
quelle
3

Stellen Sie sicher, dass die Skriptdatei ausführbar ist {chmod 755}, andernfalls wird sie nicht ausgeführt

user25
quelle
2
Um eine Datei ausführbar zu machen, können Sie auch Folgendes ausführen:chmod +x filename
Stefano Palazzo
0

Das Shell-Skript update.shenthält wahrscheinlich Fehler, z. B. einige Befehle, die nicht ausgeführt werden können, weil der Befehl nicht gefunden werden kann. In diesem Fall kann es hilfreich sein, den Pfad zu Ihrem Befehl in der PATH-Variablen oder direkt vor Ihrem Befehl hinzuzufügen. Es ist auch hilfreich, die MAILTO-E-Mail-Adresse anzugeben. E-Mails, die sich aus der Ausführung von Cronjobs ergeben, werden an diese Adresse gesendet

PATH=/path/to/your/command:/another/important/path
MAILTO=my_name@my_domain 

Sie können auch das lokale Postfach mit mailund die Syslog-Datei /var/log/syslogauf Fehler überprüfen . Siehe auch diese verwandte Frage, warum Cronjobs möglicherweise nicht funktionieren .

0x4a6f4672
quelle
0

Ich habe das gleiche Problem erlebt und die Ursache für mich war, dass crontab nicht lief, weil es keine Erlaubnis dazu hatte. Ich habe die Datei geändert und in /tmpt/output.log abgelegt

*/5 * * * * /usr/bin/php /home/ubuntu/app/artisan cmd:process-order > /tmp/queue.output

Lassen Sie mich wissen, ob das bei Ihnen funktioniert.

Kamaro Lambert
quelle