CRON - periodyczne uruchamianie komend
Transkrypt
CRON - periodyczne uruchamianie komend
Linuxwbiznesie - linux w biznesie, linux w firmie CRON - periodyczne uruchamianie komend Autor: Administrator 23.12.2005. CRON wywodzi się z Unix'a. Ma on za zadanie regularne uruchamianie innych programów. Jest demonem działającym w tle. Cron przy wywoływaniu innych komend posługuje się tabelami crontab, które mogą być zdefiniowane oddzielnie dla każdego użytkownika systemowego. Cron przegląda /var/spool/cron/crontabs w poszukiwaniu plików-tabel (crontab), o nazwach zgodnych z istniejącymi kontami systemowymi. Jeśli uda się odnaleźć takie tabele to są one ładowane do pamięci. Plik konfiguracyjny cron'a to /etc/crontab . Format tego pliku jest nieco inny niż pozostałych tabel. Cron uruchamia się co minutę (gdyż z taką dokładnością można ustawić czas wywoływania programów) i sprawdza wszystkie załadowane do pamięci tabele wykonując zawarte w nich polecenia. Sprawdza też czy czas modyfikacji tabel nie został zmieniony, wtedy to ładuje taką tabelę do pamięci w miejsce starej. Takie zachowanie powoduje iż nie musimy restartować demona, za każdym razem gdy zmienimy którąkolwiek tabelę. Tabele z komendami do uruchomienia przez demona CRON noszą nazwę crontab. Tak samo nazywa się program do ich edycji. Polecenie: $ crontab -l wyświetla tablicę poleceń dla bieżącego użytkownika systemowego. $ crontab -e edytuje tą tablicę $ crontab -r czyści tablicę Efekty wywołania komend oraz standardowe wyjście błędów są przesyłane do właściciela tabeli jeśli zdefiniowano taki mail w zmiennej MAILTO w tabeli crontab. Przykładowy plik crontab zawiera: # używaj /bin/sh do wywoływania komend. Nieważne co jest w /etc/passwd. SHELL=/bin/sh # przesyłaj wyjście do użytkownika paul MAILTO=paul # uruchamiaj się 5 minut po północy, codziennie 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 # uruchamiaj się od 2:15pm 1-szego w każdym miesiącu -- wyjście jest przesyłane do paul'a 15 14 1 * * $HOME/bin/monthly # uruchamiaj się o 10 pm w dni robocze, denerwuj Joe. 0 22 * * 1-5 mail -s "Jest 10pm" joe%Joe,%%Gdzie są twoje dzieci?% 23 0-23/2 * * * echo "uruchamiaj 23 min po polnocy, 2am, 4am ..., codziennie" 5 4 * * sun echo "Uruchamiaj się 5 po 4 w niedziele" 0 10 * * 1,3 echo "Uruchamiaj się w każdy poniedzialek i srode o 10.00" zmienne sterujące oraz określenie kiedy jaka komenda ma być uruchomiona. Pojedynczy wpis do crontab'a składa się z A B C D E /polecenie_do_wykonania gdzie w kolumnach A-E podajemy: - A - minuta (0-59) - B - godzina (0-23) - C - dzień miesiąca (1-31) http://www.linuxwbiznesie.pl Kreator PDF Utworzono 7 March, 2017, 20:23 Linuxwbiznesie - linux w biznesie, linux w firmie - D - miesiąc (1-12, lub angielskie nazwy) - E - (0-7 lub angielskie nazwy, 0 - niedziela) Możemy też używać następujących symboli zastępujących - * - kiedykolweik - / - lubPrzykładowy wpis to 0/30 * * 1 0 date > date.txt co oznacza: o pełnej godzinie lub o wpół w styczniu w każdą niedzielę uruchom zapisz datę do pliku date.txt http://www.linuxwbiznesie.pl Kreator PDF Utworzono 7 March, 2017, 20:23