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 jhkatalogu, 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/shjest też właściwa ścieżka sh. Właściwa ścieżka to /bin/sh. Możesz to sprawdzić za pomocą whereis shpolecenia. 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ż crontabwymaga 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.shTa linia jest poprawna, ale powinieneś sprawdzić ścieżkę, aby sprawdzić, czy sh istnieje w / usr / bin / sh, czy nie (użyj, which shaby 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/