it-swarm.com.de

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

Ich hatte einen Cronjob 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 
44

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 Verzeichnis jh 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/sh ist nicht der richtige Pfad für sh. Der richtige Pfad ist /bin/sh. Sie können dies mit dem Befehl whereis sh ü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
59
Radu Rădeanu

Der Pfad, unter dem der Ordner erstellt wird, lautet /. Dies liegt daran, dass der crontab in allen von ihm ausgeführten Dateien den vollständigen Pfad zu Ordnern und Dateien erfordert.

So sollte der Pfad in der myfile.sh sein

mkdir <absolutePath>/jh

cd <absolutePath>/jh

20 * * * * /usr/bin/sh /home/lucky/myfile.sh Diese Zeile ist korrekt, obwohl Sie den Pfad überprüfen sollten, um festzustellen, ob sh unter/usr/bin/sh existiert oder nicht (verwenden Sie which sh, um den Pfad zu sehen, 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/

5
penguinRaider