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