Jak ustawić zadanie cron do uruchamiania skryptu powłoki?

29

Ustawiłem zadanie cron:

20 * * * * /usr/bin/sh /home/lucky/myfile.sh

Głównym problemem jest to, że w czasie planowania wystąpił błąd: "wiadomość wysłana do / var / spool / mail / lucky".

Zawartość pliku myfile.sh to:

mkdir jh
cd jh 
    
zadawane Abhishek Tripathi 27.09.2013, 20:17
źródło

2 odpowiedzi

44

To nie jest w porządku dla skryptu, który jest ustawiony jako zadanie cron:

mkdir jh
cd jh 

Powinieneś podać pełną ścieżkę, w której należy utworzyć katalog jh . Również w tej ścieżce powinieneś mieć uprawnienia do tworzenia nowych plików / katalogów.

Na przykład twój skrypt powinien wyglądać tak:

#!/bin/sh

mkdir /home/lucky/jh
cd /home/lucky/jh

Również /usr/bin/sh nie jest właściwą ścieżką dla sh . Prawidłowa ścieżka to /bin/sh . Możesz to sprawdzić za pomocą polecenia whereis sh . A mimo to twoja praca cron powinna wyglądać następująco:

20 * * * * /home/lucky/myfile.sh

Nie zapomnij o wykonaniu skryptu:

chmod +x /home/lucky/myfile.sh
    
odpowiedział Radu Rădeanu 27.09.2013, 21:42
źródło
5

Ścieżka, w której wydaje się być tworzony folder, to / . Dzieje się tak, ponieważ crontab wymaga pełnej ścieżki do folderu i plików we wszystkich plikach, które wykonuje.

Ś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 lub nie (użyj which sh , aby zobaczyć ścieżkę, w której sh istnieje, moja była / bin / sh)

Jeśli spieszysz się, by zacząć pisać crontab, ten link ma całkiem dobre przykłady

link

    
odpowiedział penguinRaider 27.09.2013, 21:53
źródło

Przeczytaj inne pytania na temat tagów