CRONTAB(5) CRONTAB(5)
crontab - tabele dla crona
Plik crontab zawiera wskazwki dla demona cron(8), sformatowane w oglnej
postaci: ``uruchom t komend o tej porze i tego dnia''. Kady uytkownik
ma swoj wasn tabel crontab, a komendy z kadej podanej tabeli s wykony-
wane z uprawnieniami jej waciciela. News i uucp zazwyczaj maj swoje
wasne tabele, eliminujc w ten sposb potrzeb jawnego wywoywania su(1)
jako czci komendy crona.
Puste linie, spacje oraz tabulacje s ignorowane. Linie, w ktrych pier-
wszym nie-biaym znakiem jest `#', s komentarzami i te s ignorowane.
Zauwa, e komentarze nie mog wystpi w tej samej linii co komendy crona,
poniewa bd one wtedy potraktowane jak cz komendy. Podobnie, komentarze
nie s dozwolone w liniach ustawie zmiennych rodowiskowych.
Linia aktywna tabeli moe by albo ustawieniem rodowiska, albo komend
crona. Ustawienie zmiennej rodowiskowej ma posta
nazwa = warto,
gdzie spacje wok znaku rwnoci s opcjonalne, a wszelkie kolejne,
niepocztkowe spacje w wartoci zostan czci wartoci przypisanej zmiennej
nazwa. acuch warto moe by umieszczony w cudzysowach (pojedynczych lub
podwjnych). Zachowa to pocztkowe i kocowe spacje.
Wiele zmiennych rodowiskowych jest ustawianych automatycznie przez
demona cron(8). SHELL jest ustawiany na /bin/sh, LOGNAME i HOME s
ustawiane na podstawie linii /etc/passwd waciciela tabeli. Zmienne
HOME i SHELL mog by przecione przez ustawienia tabeli. Nie mona tak
zrobi z LOGNAME.
(Inna uwaga: zmienna LOGNAME nazywa si czasem USER na systemach BSD...
na tych systemach ustawiana bdzie rwnie zmienna USER.)
Dodatkowo, poza powyszymi zmiennymi, cron(8) bdzie korzysta z MAILTO
jeli zajdzie potrzeba wysania listu jako wyniku wykonania komend z
``tej'' tabeli. Jeli MAILTO jest zdefiniowane, to list zostanie wysany
do wskazanego tam uytkownika. Jeli MAILTO jest zdefiniowane, lecz puste
(MAILTO=""), to nie s wysyane adne listy. W innych wypadkach listy s
wysyane do waciciela tabeli. Opcja ta jest uyteczna jeli zdecydujesz si
na mailer /bin/mail zamiast /usr/lib/sendmail podczas instalacji crona
-- /bin/mail nie robi aliasowania, a UUSP zwykle nie czyta jego listw.
Format komendy crona jest podobny do standardu V7, z wieloma rozsz-
erzeniami. Kada linia ma pi pl czasu i daty, za ktrymi znajduje si
nazwa uytkownika (jeli jest to tabela systemowa), oraz komenda. Komendy
s wywoywane przez demona cron(8), gdy minuta, godzina i miesic z wpisu
odpowiadaj czasowi biecemu oraz gdy przynajmniej jedno z dwch pl dnia
(dzie miesica lub dzie tygodnia) odpowiadaj czasowi biecemu (zobacz
``Uwagi'' poniej). Zauwa, e oznacza to, i nieistniejace czasy, jak
"brakujce godziny" podczas konwersji zwizanej ze zmianami czasu z uwagi
na oszczdno energii, [czas letni/zimowy] nigdy nie bd pasowa. Zatem
zadania zaplanowane na takie "brakujce czasy" nie zostan uruchomione.
Podobnie, czas wystpujcy wicej ni raz (znw, przypadek zmiany czasw, w
drugim kierunku) spowoduje, e odpowiadajce mu zadania bd uruchomione
dwukrotnie. cron(8) testuje wpisy tabel co minut. Pola czasu i daty
to:
Pole dozwolone wartoci
----- --------------
minuta 0-59
godzina 0-23
dzie miesica 0-31
miesic 0-12 (lub nazwy, patrz niej)
dzie tygodnia 0-7 (0 lub 7 jest niedziel, lub uyj nazw)
Pole moe mie gwiazdk (*), ktra oznacza ``pierwszy-ostatni''.
Dozwolone s zakresy liczb. Zakresy s dwiema liczbami, oddzielonymi myl-
nikiem. Zakres ten jest domknity. Np, 8-11 dla ``godzin'' oznacza
wywoywanie w godzinach 8, 9, 10, 11.
Dozwolone s te listy. Lista jest zbiorem liczb (lub zakresw), odd-
zielonych przecinkami. Przykady: ``1,2,5,9'', ``0-4,8-12''.
W poczeniu z zakresami mona uywa wartoci krokowych. Napisanie za zakre-
sem elementu ``/<liczba>'' oznacza odstpy midzy wartociami liczby w
zakresie. Na przykad ``0-23/2'' oznacza liczby parzyste w tym zakresie.
Wartoci krokowe dozwolone s te za gwiazdkami, wic jeli chciaby
powiedzie ``co drug godzin'', uyj po prostu ``*/2''.
Dla ``miesicy'' i ``dni tygodnia'' mona uywa rwnie nazw. Uyj pierwszych
trzech liter konkretnego dnia lub miesica (po angielsku, wielko liter
nie ma znaczenia). Zakresy lub listy nazw s niedozwolone.
Szste pole (reszta linii) okrela komend, jak naley wykona. Caa cz
komendowa linii, a do nowej linii, lub znaku %, zostanie wykonana przez
/bin/sh, lub przez inn powok, jak podae w zmiennej SHELL pliku crona.
Procenty w komendzie (%), o ile nie s chronione odwrotnymi ukonikami,
zostan zamienione w znaki nowej linii, a wszelkie dane za pierwszym %
zostan przesane na standardowe wejcie komendy.
Uwaga: Dzie wywoania komendy moe by podany w dwch polach -- dniu
miesica, i dniu tygodnia. Jeli obydwa pola s podane (np, nie s *), to
komenda zostanie wywoana gdy dowolne z pl bd odpowiaday biecemu cza-
sowi. Na przykad,
``30 4 1,15 * 5'' spowoduje wywoanie komendy o 4:30am pierwszego i
15-tego kadego miesica plus kady pitek.
# uywaj /bin/sh do wywoywania komend. Nie wane co jest w /etc/passwd.
SHELL=/bin/sh
# przesyaj wyjcie do uytkownika paul
MAILTO=paul
#
# uruchamiaj si 5 minut po pnocy, codziennie
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
# uruchamiaj si od 2:15pm 1-szego w kadym miesicu -- wyjcie jest
# przesyane do paul'a
15 14 1 * * $HOME/bin/monthly
# uruchamiaj si o 10 pm w weekendy, 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"
cron(8), crontab(1)
Podczas podawania dnia tygodnia, zarwno 0 jak i 7 jest uwaane za
niedziel. BSD i ATT nie zgadzaj si z tym.
Listy i zasigi mog koegzystowa w tym samym polu. "1-3,7-9" bdzie odrzu-
cone przez crona ATT i BSD -- chc one widzie TYLKO "1-3" lub "7,8,9".
Zakresy mog zawiera "kroki", wic "1-9/2" jest tym samym co "1,3,5,7,9".
Nazwy miesica lub dnia tygodnia mog by podawane przez nazw.
W tabeli mona ustawia zmienne rodowiskowe. W BSD i ATT, rodowisko
przekazywane procesom potomnym jest po prostu tym z /etc/rc.
Jeeli uid waciciela jest rwny 0, moe on uy "-" jako pierwszego znaku
pozycji tabeli. Wwczas cron nie zapisze w dzienniku syslog komunikatu o
tym poleceniu.
Wyjcie komend jest przesyane wacicielowi tabeli (BSD nie tego potrafi),
moe by przesyane do osoby innej ni waciciel tabeli (tego nie potrafi
SysV) lub funkcja ta moe by wyczona i nie bdzie wysyana adna poczta
(SysV tego te nie potrafi).
Paul Vixie <paul [AT] vix.com>
4th Berkeley Distribution 24 stycznia 1994 CRONTAB(5)
- Chris