Wie stelle ich einen Cron-Job ein, um ein Shell-Skript auszuführen?

44

Ich hatte einen Cron Job eingestellt:

20 * * * * /usr/bin/sh /home/lucky/myfile.sh

Das Hauptproblem ist, dass zum geplanten Zeitpunkt ein Fehler auftritt: "E-Mail wurde an / var / spool / mail / lucky gesendet".

Der Inhalt von myfile.sh ist:

mkdir jh
cd jh 
Abhishek Tripathi
quelle
Dies kann Ihnen helfen: help.ubuntu.com/community/CronHowto
PeppeDAlterio
2
Ist myfile.sh als ausführbar eingestellt?
Rogerdpack

Antworten:

60

Dies ist für ein Skript, das als Cron-Job festgelegt ist, nicht in Ordnung:

mkdir jh
cd jh 

Sie sollten den vollständigen Pfad angeben, in dem das jhVerzeichnis erstellt werden muss. Außerdem sollten Sie in diesem Pfad die Berechtigung haben, neue Dateien / Verzeichnisse zu erstellen.

Zum Beispiel sollte Ihr Skript so aussehen:

#!/bin/sh

mkdir /home/lucky/jh
cd /home/lucky/jh

Auch /usr/bin/shist nicht der richtige Weg dafür sh. Der richtige Weg ist /bin/sh. Sie können dies mit dem whereis shBefehl überprüfen . Und trotzdem sollte Ihr Cron Job so aussehen:

20 * * * * /home/lucky/myfile.sh

Vergiss nicht, das Skript ausführbar zu machen:

chmod +x /home/lucky/myfile.sh
Radu Rădeanu
quelle
Ehrfürchtig, hat mein Leben gerettet :) Meines funktioniert gut so. 0 7 * * * / bin / sh /root/Scripts/command.sh> / dev / null 2> & 1
Louwki
5

Der Pfad, unter dem dies den Ordner zu erstellen scheint, lautet /. Dies liegt daran, dass der vollständige Pfad zu Ordnern und Dateien in allen von ihm ausgeführten Dateien crontaberforderlich ist .

So sollte der Pfad in der myfile.sh sein

mkdir <absolutePath>/jh

cd <absolutePath>/jh

20 * * * * /usr/bin/sh /home/lucky/myfile.shDiese Zeile ist korrekt, obwohl Sie den Pfad überprüfen sollten, um festzustellen, ob sh unter / usr / bin / sh existiert oder nicht (verwenden Sie diese Option which sh, um den Pfad zu ermitteln, unter dem sh existiert; meiner war / bin / sh).

Wenn Sie es eilig haben, crontab zu schreiben, finden Sie unter diesem Link ziemlich gute Beispiele

http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/

penguinRaider
quelle