2016-04-27 17 views
0

Ich habe ein 'sh' Skript auf meinem VPS erstellt, die Kopien des Dateisystems und SQL erstellt und speichert sie in den gleichen Ordner, den ich dann auf ein Backup-Medium schieben werde. Ich weiß, dass mein Skript dafür arbeitet, wenn ich mich über SSH als root anmelde und den Befehl manuell ausführe, erstellt er eine ZIP-Datei und die SQL-Sicherung, aber der CRONjob, den ich zum Ausführen dieses Skripts erstellt habe, funktioniert nicht. Ich habe den folgenden Cron-Job in ‚/ etc/crontab‘ erstellt:Problem, CRON Job läuft auf VPS

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

    # m h dom mon dow user command 
    17 * * * * root cd/&& run-parts --report /etc/cron.hourly 
    4 6 * * *  root test -x /usr/sbin/anacron || (cd/&& run- parts --report /etc/cron.daily) 
    20 1 * * 7  root test -x /usr/sbin/anacron || (cd/&& run-parts --report /etc/cron.weekly) 
    51 5 1 * *  root test -x /usr/sbin/anacron || (cd/&& run-parts --report /etc/cron.monthly) 
    * * * * *  root /home/backup/test.sh 

Der fünfte Eintrag ist diejenige, die ich geschaffen habe zu testen. Der Pfad ist korrekt und ich habe einen absoluten Pfad verwendet, wie zuvor beschrieben. Ich habe ein einfaches Skript namens test/sh geschrieben, das einen Text in eine Datei (test.txt) ausgibt, um den CRON-Job zu testen, und es funktioniert nicht. Ich verwende den Befehl 'tail -f', um Änderungen an der Textdatei zu überwachen, und sie wird nie aufgerufen. Das Skript funktioniert jedoch, wenn es manuell ausgeführt wird.

Hier ist die einfache 'test.sh' Datei. Dies funktioniert korrekt, wenn es manuell aufgerufen wird.

Ich verstehe, dass es Probleme mit Berechtigungen geben kann, aber ich dachte, wenn ich dies als 'root' ausführte, sollte das in Ordnung sein? Kann jemand sehen, wo ich falsch liege? So

Dank

+1

Was enthält test.sh? Wie steht es konkret mit test.txt? - Es mit absoluten Pfaden? Denken Sie daran, dass wenn cron Ihr Skript ausführt, es sich nicht in dem Verzeichnis befindet, in dem Sie sich befinden, wenn Sie es manuell ausführen. – moonshadow

+0

Haben Sie alle Dinge, die unter 'Debugging crontab' im Crontab-Tag [info wiki] (https://stackoverflow.com/tags/contab/info) aufgeführt sind, überprüft? –

+0

Ich werde den Inhalt von test.sh dem ursprünglichen Beitrag hinzufügen. Entschuldigung, dass ich das vergessen habe – devoncrazylegs

Antwort

1

, nach einigen Stunden des Suchens erkannte ich etwas dumm. Ich hatte den Befehl 'bash' aus der Crontab-Datei weggelassen.

änderte ich meine Linie dazu:

          • root bash /home/backup/test.sh

Und es läuft jetzt.