table of contents
- bookworm-backports 1:4.25.1-1~bpo12+1
- testing 1:4.25.1-1
- unstable 1:4.25.1-1
CRONTAB(5) | File Formats Manual | CRONTAB(5) |
NAZWA¶
crontab - tabele do 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 wiersze, spacje oraz tabulacje są ignorowane. Wiersze, w których pierwszym nie-białym znakiem jest kratka (#), są komentarzami i też są ignorowane. Proszę zauważyć, że komentarze nie mogą wystąpić w tym samym wierszu co komendy crona, ponieważ będą one wtedy potraktowane jak część komendy. Podobnie, komentarze nie są dozwolone w wierszach ustawień zmiennych środowiskowych.
Aktywny wiersz tabeli może być albo ustawieniem środowiska, albo komendą crona. Ustawianie zmiennej ma postać
nazwa = wartość
gdzie spacje wokół znaku równości (=) są opcjonalne, a wszelkie kolejne, niepoczątkowe spacje w wartości zostaną częścią wartości przypisanej zmiennej nazwa. Łańcuch wartość może być umieszczony w cudzysłowach (pojedynczych lub podwójnych, lecz jednakowych w parze). Zachowa to początkowe i końcowe spacje.
Wiele zmiennych środowiskowych jest ustawianych automatycznie przez demona cron(8). SHELL jest ustawiana na /bin/sh, LOGNAME i HOME są ustawiane na podstawie wierszy /etc/passwd właściciela tabeli. Zmienne HOME i SHELL mogą być przesłonięte przez ustawienia w tabeli, natomiast LOGNAME nie.
Inna uwaga: zmienna LOGNAME nazywa się czasem USER na systemach BSD... na tych systemach ustawiana będzie również zmienna USER.
Oprócz zmiennych LOGNAME, HOME i SHELL, cron(8) sprawdzi również zmienną MAILTO, jeśli będzie miał powód do wysłania wiadomości elektronicznej w wyniku poleceń działających w „tym” pliku crontab. Jeśli MAILTO jest zdefiniowana (i nie jest pusta), wiadomość jest wysyłana do użytkownika o tej nazwie. Jeśli MAILTO jest zdefiniowana, lecz jest pusta (MAILTO=""), poczta nie jest wysyłana. W innych przypadkach wiadomość jest wysyłana do właściciela pliku crontab. Opcja ta może się przydać, jeśli jako nadawczy program pocztowy użytkownik zdecyduje się korzystać z /bin/mail, zamiast /usr/lib/sendmail — /bin/mail nie korzysta z aliasów, a UUCP zwykle nie odczytuje swojej poczty.
Format komendy crona jest podobny do standardu V7, z wieloma rozszerzeniami. Każdy wiersz ma pięć pól czasu i daty, za którymi znajduje się nazwa użytkownika (jeśli jest to systemowy plik crontab), a następnie polecenie. Polecenia są wykonywane przez program cron(8), gdy pola minuty, godziny i miesiąca będą odpowiadały bieżącej dacie oraz przynajmniej jedno z pól dni (dzień miesiąca lub dzień tygodnia) będą odpowiadały bieżącej dacie (zob. Uwaga poniżej). cron(8) sprawdza wpisy cron co minutę. Istnieją następujące pola czasu i daty:
- Pole dozwolone wartości
---- ------------------
minuta 0-59
godzina 0-23
dzień miesiąca 0-31
miesiąc 0-12 (albo nazwy, patrz niżej)
dzień tygodnia 0-7 (0 lub 7 jest niedz.; albo nazwy)
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. Na przykład, 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 (alternatywą w standardzie V7 jest "0,2,4,6,8,10,12,14,16,18,20,22"). Wartości krokowe dozwolone są też za gwiazdkami, więc jeśli aby zdefiniować "co drugą godzinę", można użyć po prostu "*/2".
Dla "miesięcy" i "dni tygodnia" można używać również nazw. Można użyć 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 wiesza) określa polecenie, jaką należy wykonać. Cała część polecenia wiersza, aż do nowego wiersza lub znaku %, zostanie wykonana przez /bin/sh, lub przez inną powłokę, jaką podano w zmiennej SHELL pliku crona. Procenty w komendzie (%), o ile nie są chronione odwrotnymi ukośnikami (\), zostaną zamienione w znaki nowego wiersza, a wszelkie dane za pierwszym % zostaną przesłane na standardowe wejście polecenia.
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 (tj. 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:30 pierwszego
i 15-tego każdego miesiąca plus każdy
piątek.
PRZYKŁADOWA TABELA CRON¶
# używaj /bin/sh do wywoływania komend, bez względu na /etc/passwd. SHELL=/bin/sh # przesyłaj wyjście do użytkownika "paul", bez względu na # właściciela tabeli MAILTO=paul # # uruchamiaj się 5 minut po północy, codziennie 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 # uruchamiaj się o 14:15 pierwszego w każdym miesiącu -- wyjście jest # przesyłane do użytkownika paul 15 14 1 * * $HOME/bin/monthly # uruchamiaj się o 22 w weekendy, denerwuj Joe. 0 22 * * 1-5 mail -s "Jest 22" joe%Joe,%%Gdzie są twoje dzieci?% 23 0-23/2 * * * echo "uruchamiaj 23 min po: północy, 2, 4 ..., codziennie" 5 4 * * sun echo "Uruchamiaj o 4:05 w każdą niedzielę" # Uruchamiaj się co dziewiąty dzień, bez względu na granice tygodni, miesięcy i lat: 33 22 * * * expr $(date +s) / 60 / 60 / 24 9 > /dev/null || echo Wyfroteruj parkiet.
ZOBACZ TAKŻE¶
ROZSZERZENIA¶
Podczas podawania dnia tygodnia, zarówno 0 jak i 7 jest uważane za niedzielę. BSD i AT&T nie zgadzają się z tym.
Listy i zasięgi mogą koegzystować w tym samym polu. "1-3,7-9" będzie odrzucone przez crona AT&T 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 za pomocą (angielskiej) nazwy.
W tabeli można ustawiać zmienne środowiskowe. W BSD i AT&T, środowisko przekazywane procesom potomnym jest po prostu tym z /etc/rc.
Wyjście poleceń 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>
TŁUMACZENIE¶
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>, Wojtek Kotwica <wkotwica@post.pl> i Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.
24 stycznia 1994 r. | 4th Berkeley Distribution |