Provided by:
manpages-pl_20051117-1_all 
NAZWA
crontab - tabele dla crona
OPIS
Plik crontab zawiera wskazówki dla demona cron(8), sformatowane w
ogólnej postaci: ``uruchom tę komendę o tej porze i tego dnia''. Każdy
użytkownik ma swoją własną tabelę crontab, a komendy z każdej podanej
tabeli są wykonywane z uprawnieniami jej właściciela. News i uucp
zazwyczaj mają swoje własne tabele, eliminując w ten sposób potrzebę
jawnego wywoływania su(1) jako części komendy crona.
Puste linie, spacje oraz tabulacje są ignorowane. Linie, w których
pierwszym nie-białym znakiem jest `#', są komentarzami i też są
ignorowane. Zauważ, że komentarze nie mogą wystąpić w tej samej linii
co komendy crona, ponieważ będą one wtedy potraktowane jak część
komendy. Podobnie, komentarze nie są dozwolone w liniach ustawień
zmiennych środowiskowych.
Linia aktywna tabeli może być albo ustawieniem środowiska, albo komendą
crona. Ustawienie zmiennej środowiskowej ma postać
nazwa = wartość,
gdzie spacje wokół znaku równości są opcjonalne, a wszelkie kolejne,
niepoczątkowe spacje w wartoci zostaną częścią wartości przypisanej
zmiennej nazwa. Łańcuch warto może być umieszczony w cudzysłowach
(pojedynczych lub podwójnych). Zachowa to początkowe i końcowe 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 właściciela tabeli. Zmienne
HOME i SHELL mogą być przeciążone przez ustawienia tabeli. Nie można
tak zrobić z LOGNAME.
(Inna uwaga: zmienna LOGNAME nazywa się czasem USER na systemach BSD...
na tych systemach ustawiana będzie również zmienna USER.)
Dodatkowo, poza powyższymi zmiennymi, cron(8) będzie korzystał z MAILTO
jeśli zajdzie potrzeba wysłania listu jako wyniku wykonania komend z
``tej'' tabeli. Jeśli MAILTO jest zdefiniowane, to list zostanie
wysłany do wskazanego tam użytkownika. Jeśli MAILTO jest zdefiniowane,
lecz puste (MAILTO=""), to nie są wysyłane żadne listy. W innych
wypadkach listy są wysyłane do właściciela tabeli. Opcja ta jest
użyteczna jeśli zdecydujesz się na mailer /bin/mail zamiast
/usr/lib/sendmail podczas instalacji crona -- /bin/mail nie robi
aliasowania, a UUSP zwykle nie czyta jego listów.
Format komendy crona jest podobny do standardu V7, z wieloma
rozszerzeniami. Każda linia ma pięć pól czasu i daty, za którymi
znajduje się nazwa użytkownika (jeśli jest to tabela systemowa), oraz
komenda. Komendy są wywoływane przez demona cron(8), gdy minuta,
godzina i miesiąc z wpisu odpowiadają czasowi bieżącemu oraz gdy
przynajmniej jedno z dwóch pól dnia (dzień miesiąca lub dzień tygodnia)
odpowiadają czasowi bieżącemu (zobacz ``Uwagi'' poniżej). Zauważ, że
oznacza to, iż nieistniejace czasy, jak "brakujące godziny" podczas
konwersji związanej ze zmianami czasu z uwagi na oszczędność energii,
[czas letni/zimowy] nigdy nie będą pasować. Zatem zadania zaplanowane
na takie "brakujące czasy" nie zostaną uruchomione. Podobnie, czas
występujący więcej niż raz (znów, przypadek zmiany czasów, w drugim
kierunku) spowoduje, że odpowiadające mu zadania będą uruchomione
dwukrotnie. cron(8) testuje wpisy tabel co minutę. Pola czasu i daty
to:
Pole dozwolone wartości
----- --------------
minuta 0-59
godzina 0-23
dzień miesiąca 0-31
miesiąc 0-12 (lub nazwy, patrz niżej)
dzień tygodnia 0-7 (0 lub 7 jest niedzielą, lub użyj nazw)
Pole może mieć gwiazdkę (*), która oznacza ``pierwszy-ostatni''.
Dozwolone są zakresy liczb. Zakresy są dwiema liczbami, oddzielonymi
myślnikiem. Zakres ten jest domknięty. Np, 8-11 dla ``godzin'' oznacza
wywoływanie w godzinach 8, 9, 10, 11.
Dozwolone są też listy. Lista jest zbiorem liczb (lub zakresów),
oddzielonych przecinkami. Przykłady: ``1,2,5,9'', ``0-4,8-12''.
W połączeniu z zakresami można używać wartości krokowych. Napisanie za
zakresem elementu ``/<liczba>'' oznacza odstępy między wartościami
liczby w zakresie. Na przykład ``0-23/2'' oznacza liczby parzyste w tym
zakresie. Wartości krokowe dozwolone są też za gwiazdkami, więc jeśli
chciałbyś powiedzieć ``co drugą godzinę'', użyj po prostu ``*/2''.
Dla ``miesięcy'' i ``dni tygodnia'' można używać również nazw. Użyj
pierwszych trzech liter konkretnego dnia lub miesiąca (po angielsku,
wielkość liter nie ma znaczenia). Zakresy lub listy nazw są
niedozwolone.
Szóste pole (reszta linii) określa komendę, jaką należy wykonać. Cała
część komendowa linii, aż do nowej linii, lub znaku %, zostanie
wykonana przez /bin/sh, lub przez inną powłokę, jaką podałeś w zmiennej
SHELL pliku crona. Procenty w komendzie (%), o ile nie są chronione
odwrotnymi ukośnikami, zostaną zamienione w znaki nowej linii, a
wszelkie dane za pierwszym % zostaną przesłane na standardowe wejście
komendy.
Uwaga: Dzień wywołania komendy może być podany w dwóch polach -- dniu
miesiąca, i dniu tygodnia. Jeśli obydwa pola są podane (np, nie są *),
to komenda zostanie wywołana gdy dowolne z pól będą odpowiadały
bieżącemu czasowi. Na przykład,
``30 4 1,15 * 5'' spowoduje wywołanie komendy o 4:30am pierwszego i
15-tego każdego miesiąca plus każdy piątek.
PRZYKŁADOWA TABELA
# używaj /bin/sh do wywoływania komend. Nie waż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 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"
ZOBACZ TAKŻE
cron(8), crontab(1)
ROZSZERZENIA
Podczas podawania dnia tygodnia, zarówno 0 jak i 7 jest uważane za
niedzielę. BSD i ATT nie zgadzają się z tym.
Listy i zasięgi mogą koegzystować w tym samym polu. "1-3,7-9" będzie
odrzucone przez crona ATT i BSD -- chcą one widzieć TYLKO "1-3" lub
"7,8,9".
Zakresy mogą zawierać "kroki", więc "1-9/2" jest tym samym co
"1,3,5,7,9".
Nazwy miesiąca lub dnia tygodnia mogą być podawane przez nazwę.
W tabeli można ustawiać zmienne środowiskowe. W BSD i ATT, środowisko
przekazywane procesom potomnym jest po prostu tym z /etc/rc.
Jeżeli uid właściciela jest równy 0, może on użyć "-" jako pierwszego
znaku pozycji tabeli. Wówczas cron nie zapisze w dzienniku syslog
komunikatu o tym poleceniu.
Wyjście komend jest przesyłane właścicielowi tabeli (BSD nie tego
potrafi), może być przesyłane do osoby innej niż właściciel tabeli
(tego nie potrafi SysV) lub funkcja ta może być wyłączona i nie będzie
wysyłana żadna poczta (SysV tego też nie potrafi).
AUTOR
Paul Vixie <paul@vix.com>