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
Antworten:
Dies ist für ein Skript, das als Cron-Job festgelegt ist, nicht in Ordnung:
Sie sollten den vollständigen Pfad angeben, in dem das
jh
Verzeichnis 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:
Auch
/usr/bin/sh
ist nicht der richtige Weg dafürsh
. Der richtige Weg ist/bin/sh
. Sie können dies mit demwhereis sh
Befehl überprüfen . Und trotzdem sollte Ihr Cron Job so aussehen:Vergiss nicht, das Skript ausführbar zu machen:
quelle
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 Dateiencrontab
erforderlich ist .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 diese Optionwhich 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/
quelle