|
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. |
|