sudo Crontab läuft nicht, aber crontab läuft? :)

sudo Crontab läuft nicht, aber crontab läuft? :)

Ich verwende Crontab in meinem Benutzer, um viele Curl-Skripte auszuführen. Sie funktionieren einwandfrei, 40 davon funktionieren.

Aber die Skripte, die ich im Stamm-Crontab mit dem Befehl „sudo crontab -e“ habe, werden nicht ausgeführt. Sie haben vor etwa einem Monat aufgehört zu funktionieren, obwohl sie über zwei Jahre lang einwandfrei funktioniert haben.

Habe versucht, mit Server-Leuten zu sprechen, aber keiner von ihnen hatte eine Ahnung, was falsch sein könnte. Übrigens bin ich kein Server-Experte, ich kann einer Anleitung folgen, aber das war’s :)

Ich habe Folgendes versucht: den Cron-Dienst neu zu starten, „neue Crontab zu installieren“, die Skripte in der normalen Crontab mit dem Root-Benutzer auszuführen, den Server neu zu starten, alles in der Datei zu löschen, MAILTO zu löschen.

Alle Skripte funktionieren, indem sie einfach manuell ausgeführt werden.

Dies ist die Geldstrafe, die nicht funktioniert:

MAILTO=""

2 3 * * * "/usr/local/scripts/backup-mysql.sh"
25 3 * * * "/usr/local/scripts/backup-prestashop.sh"

Antwort1

Am hilfreichsten dürfte es sein, Fehlermeldungen zu erhalten.

2  3  * * *  { date; bash -v "/usr/local/scripts/backup-mysql.sh"; date; }  &>/tmp/cron-backup-mysql.log
25 3  * * *  { date; bash -v "/usr/local/scripts/backup-prestashop.sh"; date; } &>/tmp/cron-backup-prestashop.log

Die Ausgabe wird in aufgezeichnet /tmp/cron-backup-mysql.logund /tmp/cron-backup-prestashop.loggibt bash -vdie Zeilen des Skripts so aus, wie sie gelesen werden.

Sie können den Besitzer der Datei überprüfen, um sicherzugehen, dass sie als Root ausgeführt wird. Lesen Sie dann die Datei. Sie haben die Start- und Endzeit, um zu überprüfen, ob der Lauf abgeschlossen ist und ob die Dauer Ihren Erwartungen entspricht.

Wenn das Skript nun korrekt läuft, lag das Problem vermutlich an der implizit aufgerufenen Shell ( bash -vaus Crontab entfernen und echo SHELL = $SHELLzum Skript hinzufügen) oder an der fehlenden Ausführungsberechtigung für das Skript ( chmod +x).

Wenn das Skript abstürzt, bash -vhilft Ihnen dies, den Fehler zu finden. Sie können weitere Details anzeigen, indem Sie -vdurch ersetzen. -xDadurch wird die Ausgabe jedoch mit jedem Ausdruck überflutet, der ausgewertet wird.

verwandte Informationen