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


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

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/

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.