Ustawiłem pracę crona:
20 * * * * /usr/bin/sh /home/lucky/myfile.sh
Główny problem polega na tym, że w czasie harmonogramu występuje błąd: „poczta została wysłana do / var / spool / mail / lucky”.
Zawartość myfile.sh to:
mkdir jh
cd jh
Ustawiłem pracę crona:
20 * * * * /usr/bin/sh /home/lucky/myfile.sh
Główny problem polega na tym, że w czasie harmonogramu występuje błąd: „poczta została wysłana do / var / spool / mail / lucky”.
Zawartość myfile.sh to:
mkdir jh
cd jh
Odpowiedzi:
Nie jest to właściwe dla skryptu ustawionego jako zadanie cron:
mkdir jh
cd jh
Powinieneś podać pełną ścieżkę do jh
katalogu, w którym należy utworzyć katalog. Ponadto w tej ścieżce powinieneś mieć uprawnienia do tworzenia nowych plików / katalogów.
Na przykład skrypt powinien wyglądać następująco:
#!/bin/sh
mkdir /home/lucky/jh
cd /home/lucky/jh
Nie /usr/bin/sh
jest też właściwa ścieżka sh
. Właściwa ścieżka to /bin/sh
. Możesz to sprawdzić za pomocą whereis sh
polecenia. Mimo to twoja praca crona powinna wyglądać następująco:
20 * * * * /home/lucky/myfile.sh
Nie zapomnij, aby skrypt był wykonywalny:
chmod +x /home/lucky/myfile.sh
Ścieżka, w której wydaje się, że tworzy to folder, to /
. Jest tak, ponieważ crontab
wymaga pełnej ścieżki do folderu i plików we wszystkich plikach, które wykonuje.
Tak więc ścieżka w pliku myfile.sh powinna być
mkdir <absolutePath>/jh
cd <absolutePath>/jh
20 * * * * /usr/bin/sh /home/lucky/myfile.sh
Ta linia jest poprawna, ale powinieneś sprawdzić ścieżkę, aby sprawdzić, czy sh istnieje w / usr / bin / sh, czy nie (użyj, which sh
aby zobaczyć ścieżkę, w której istnieje sh; moja była / bin / sh)
Jeśli spieszysz się z pisaniem crontab, ten link zawiera całkiem dobre przykłady
http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/