2017-05-26 3 views
0

Ich bin ein Bash-Skript, das Dateien an meine AWS-Bucket überträgt.Wenn ich das Bash-Skript über mein Terminal ausführen, funktioniert es gut (über ./myBash.sh). Allerdings habe ich es in meiner crontab aber es ist es nicht work.This ist meine Bash-SkriptBash-Skript funktioniert nicht über Crontab

#/bin/bash

s3cmd setzen /home/anonymous/commLogs.txt s3: // myBucket/

Echoübertragung abgeschlossen

echo jetzt Dateien im s3 Eimer

s3cmd ls s3 Auflistung: // myBucket/

ech o überprüfen

Und das ist mein crontab-

SHELL =/bin/sh

PATH =/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

46 13 * * */bin/bash myBash.sh

Und hier ist eine Liste der Dinge, die ich aready versucht haben -

1) versucht, die crontab mit einem Knoten app laufen zu testen, ob crontab arbeitet (die Antwort Ja)

2) versucht, die crontab ohne die Schale und Laufweg

3) versucht, den Lauf bash-Skript von cron mit sudo (46 13 * * * sudo myBash.sh)

4) versucht, die bash läuft ohne die/bin/bash

5) Gesucht viele Seiten im Netz, ohne eine Antwort zufrieden stellend Ergebnisse

Kann mir jemand helfen, was das Problem sein könnte? (Ich benutze Ubuntu 14.04)

+0

Sie Ausgang Hat die stdout des Skripts aus der cron in eine Datei, was der Inhalt dieser Datei ist? ('46 13 * * */bin/bash myBash.sh>/home/anonymous/cron_out.txt') –

+0

Dieses Skript sollte nur testen, ob diese crontab die bash ausgeführt hat oder nicht..so der Inhalt der txt-Datei waren nur "abcdefgh" –

+0

Also hast du nicht. Und hast du den Pfad zu deinem Skript im Cron wie oben ausgeschlossen? –

Antwort

0

Für alle, die zu diesem Post kommen. Ich hatte das gleiche Problem und Grund war Crontab unter Root-Benutzer ausgeführt wurde und s3cmd wurde unter Ubuntu-Benutzer konfiguriert. so müssen .s3cfg kopieren zu verankern

cp -i /home/ubuntu/.s3cfg /root/.s3cfg 
Verwandte Themen