Warning: Missing argument 2 for artykul(), called in /homez.143/epubzmnd/linuxpub/old/lib/druk.php on line 22 and defined in /homez.143/epubzmnd/linuxpub/old/lib/artykul.php on line 8
LinuxPub : Crontab : Dokumentacja, Wiadomości, Pomoc, Forum, Howto, Manual, Bezpieczeństwo Fragment strony http://linuxpub.pl/. Wydrukowano:23.05.2012 03:18
Powrót Powrót 
 
Wyślij znajomemu

Przewodnik po Crontabie

By: Vincent Hillier
tłumacz: Lucjan Modzel www.linuxpub.pl


Jedną z największych rzeczy na tym skomputeryzowanym świecie jast automatyzacja, wykonywana także przez automatyzację. Mam tu na myśli zadania zaczynane (i wykonywane) bez ingerencji użytkownika. W tym przewodniku chcę wyjaśnić podstawy Crontaba

Crontab pozwala zaplanować uruchamianie komend i skryptów o określonym czasie. Na przykład jest polecenie które musisz wykonywać dokładnie co tydzień i zawsze o tym zapominasz (i twój szef nienawidzi tego że o tym zapominasz) możesz wtedy uszczęśliwić siebie i szefa przez umieszczenie tego tego nieszczęsnego polecenia w zadaniach crona.

Należy pamiętać, że crontab jest oddzienie ustawiany dla każdego użytkownika. Program ten co minutę sprawdza wszystkie swoje wpisy i jeśli któryś powinien być w danym momencie uruchomiony to go uruchamia. Sprawdza równocześnie wszelkie zmiany także po wyedytowaniu nie trzeba go restartować.

Na dobry początek pokażę flagi z jakimi może być uruchamiany crontab

Flagi, których można używać to są...

-e - edycja -l - lista -r - usunięcie

Po uruchomieniu komendy crontab -e pokaże się plik konfiguracyjny crontaba w trybie do edycji. Uruchomienie crontab -r powoduje wykasowanie wszystkich wpisów. Wpisanie crontab -l wylistuje nam dotychczasową konfigurację crontaba.

Ok, powiedzmy teraz co chcemy dodać do crontaba, będzie to lista wszystkich procesów w systemie co godzinę i będzie wysyłana ona do nas e-mailem. Potrzebujemy uruchomić crontab -e (domyślnym edytorem zadań crona jest vi, jeżeli nie lubisz vi, ustaw zmienną VISUAL na swój ulubiony edytor. Na przykład jeżeli lubisz pico wpisz ...)

export VISUAL=pico

Początkujących użytkowników może przerażać zarówno vi jak i pico. Ale można też oczywiście ustawić domyślnym edytorem "mcedit" - czyli edytor z Midnight Commandera. Robimy to poleceniem:

export VISUAL=mcedit

Wracając do dodawania zadań w crontabie, pierwszą rzeczą będzie otwarcie go ... crontab -e Teraz możemy dodać nasze zadanie w crontabie, składnia jest następująca...

MIN HOUR DAY MONTH DAYOFWEEK COMMAND MINUTA GODZINA DZIEŃ MIESIĄC DZIEŃ_TYGODNIA KOMENDA

Tak, że jeśli chcesz informować o uruchomionych procesach w systemie o każdej godzienie, coś w następującym stylu powinno działać...

0 * * * * /bin/ps aux | mail użytkownik

To będzie przesyłać e-mailem listę procesów z ps do użytkownika o każdej godzienie. Oczywiście trzeba jeszcze zmienić słowo "użytkownik" na twoją nazwę użytkownika.

Co jeśli chcesz uruchamiać tę komendę pierwszego dnia każdego miesiąca? Linia powina wyglądać mniej więcej tak ...

1 0 1 * * /bin/ps aux | mail użytkownik

Który będzie działał tak samo jak ten powyżej z tym, że będzie wykonywany tylko raz w niesiącu.

Co jeżeli potrzebujemy uruchamiać skrypt codziennie od poniedziałku do piątku o godzinie piątej po południu (koniec dnia roboczego) ale skrypt ma bardzo dużo danych wyjściowych. PAMIĘTAJ: jakiekolwiek wyjście programu uruchamiene z crontaba jest przesłane do ciebie przez e-mail. Tak więc chcemy uruchomić tą komendę każdego dnia tygodnia, o 17.00 a potok wyjściowy usunąć przez przesłanie do /dev/null. Będzie to robił następujący przykład...

0 17 * * mon-fri /home/vince/script>> /dev/null 2>&1

Ten przykład uruchamia skrypt /home/vince/script codzinnie od poniedziałku do piątku o godzinie 17.00 i przesyła całe wyjście do /dev/null. Jeżeli chcemy aby wyjście było przesyłane do nas pocztą musimy jeszcze użyć "| mail użytkownik" lub zostawić to miejsce puste.

Na tym byłby koniec, mam nadzieję że mogłeś znaleźć kilka pożytecznych sposobów wykorzystania crontaba.

Jeżeli masz jakiekolwiek komentarze, problemy lub sugestie proszę o post na nasze forum na http://www.lansystems.com/forum/index.php (zalecam) lub bezpośrednio emailem na vince@lansystems.com. Jeżeli napiszesz do mnie dotyczący przewodnika, odpowiedź wyślę postem na forum. W ten sposób przyniesie to więcej korzyści osobie która spotka się z takim samym problemem jak ty i zajrzy najpierw na forum.

 


Do góry Do góry 
 
Powrót Powrót 
Wyślij znajomemu