2017-04-01 12 views
0

Ich habe ein Bash-Skript, das jeden Tag um 9:30 Uhr ausgeführt werden muss. es heißt fetchIND.sh und ich habe den Eintrag dafür auf meiner Registerkarte mit den Shell- und Pfadparametern wie folgt festgelegt. Es soll Dateien von einem anderen Server mit sftp holen und funktioniert gut manuell. Mit Crontab wird jedoch nicht ausgeführt.Crontab führt mein Skript nicht aus, das manuell ausgeführt wird

Mein crontab Eintrag:

06 21 * * * root/usr/bin/bash /root/IND/fetchIND.sh

Ergebnisse nach ‚ps aux | grep bash‘Befehl:

Wurzel 5815 0,0 0,0 8984 808 pts/0 S + 21.06 00.00 grep --color = auto bash

Allerdings ist mein Skript nicht tatsächlich ausgeführt werden. Jede Hilfe diesbezüglich wäre großartig. Vielen Dank!!

+0

Bitte nehmen Sie ein siehe [editing-help] (http://stackoverflow.com/editing-help). – Cyrus

Antwort

0

Der Cron versucht möglicherweise, dies in Cron-Shell auszuführen, die möglicherweise keine Berechtigung zum Ausführen des Befehls in der Root-Shell haben.

Das Hinzufügen von Sudo könnte die Arbeit machen. Siehe dies für mehr https://superuser.com/a/1046126

0

(Herausgegeben aus einem Vorschlag Syntax zu überprüfen - dies für CentOS gültig zu sein scheint Weggehen andere Vorschläge, hinzugefügt Details -.. Sorry ich habe nicht genug Karma zu kommentieren, hehe)

Ihr Skript könnte auf Dinge abhängen, die anders sind, wenn sie von cron-Daemon aufgerufen: Umgebungsvariablen, die Sie in Ihrem Shell verändert haben könnten, den Zugang zu einem tty usw.

Sie können es debuggen, indem eine Umleitung anhängt:

06 21 * * * root /usr/bin/bash /root/IND/fetchIND.sh 2>&1 >> /tmp/trace_when_running_from_crontab.log 
+0

Hey. Der Grund dafür, dass "root" vorhanden ist, liegt darin, dass meine crontab den Benutzernamen vor dem Befehl angeben muss. Ich arbeite mit Cent OS, also ist das Format wahrscheinlich anders – Vedant7

Verwandte Themen