.\" -*- coding: UTF-8 -*- .\"/* Copyright 1988,1990,1993,1994 by Paul Vixie .\" * All rights reserved .\" * .\" * Distribute freely, except: don't remove my name from the source or .\" * documentation (don't take credit for my work), mark your changes (don't .\" * get me blamed for your possible bugs), don't alter or remove this .\" * notice. May be sold if buildable source is provided to buyer. No .\" * warrantee of any kind, express or implied, is included with this .\" * software; use at your own risk, responsibility for damages (if any) to .\" * anyone resulting from the use of this software rests entirely with the .\" * user. .\" * .\" * Send bug reports, bug fixes, enhancements, requests, flames, etc., and .\" * I'll try to keep a version up to date. I can be reached as follows: .\" * Paul Vixie uunet!decwrl!vixie!paul .\" */ .\" .\" $Id: crontab.5,v 2.4 1994/01/15 20:43:43 vixie Exp $ .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH CRONTAB 5 "19 kwietnia 2010" .UC 4 .SH NAZWA crontab \- tabele do crona .SH OPIS Plik \fIcrontab\fP zawiera wskazówki dla demona \fBcron\fP(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 \fBsu\fP(1) jako części komendy crona. .PP 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. .PP Aktywny wiersz tabeli może być albo ustawieniem środowiska, albo komendą crona. Plik tabeli jest przetwarzany od góry do dołu, tak więc ustawienie zmiennej środowiskowej będzie miało wpływ jedynie na komendy crona znajdujące się poniżej jej. Ustawianie zmiennej ma postać .PP .in +4n nazwa = wartość .in .PP gdzie spacje wokół znaku równości (=) są opcjonalne, a wszelkie kolejne, niepoczątkowe spacje w \fIwartości\fP zostaną częścią wartości przypisanej zmiennej \fInazwa\fP. Łańcuch \fIwartość\fP może być umieszczony w cudzysłowach (pojedynczych lub podwójnych, lecz jednakowych w parze). Zachowa to początkowe i końcowe spacje. Aby zdefiniować pustą zmienną, \fBtrzeba\fP zastosować cudzysłowy. .PP Łańcuch \fIwartość\fP \fBnie\fP jest przetwarzany pod kątem podstawień zmiennych środowiskowych lub zastąpień zmiennych, tak więc wiersze takie jak .PP .in +4n .nf PATH = $HOME/bin:$PATH PATH = ~/bin:/usr/bin:/bin .fi .in .PP nie będą działać zgodnie z przewidywaniami. Tak samo będzie z tym przykładem: .PP .in +4n .nf A=1 B=2 C=$A $B .fi .in .PP Nie nastąpi podmiana zdefiniowanymi zmiennymi w ostatniej wartości. .PP Wiele zmiennych środowiskowych jest ustawianych automatycznie przez demona \fBcron\fP(8). SHELL jest ustawiany na /bin/sh, LOGNAME i HOME są ustawiane na podstawie wierszy /etc/passwd właściciela tabeli. PATH jest ustawiane na "/usr/bin:/bin". Zmienne HOME, SHELL i PATH mogą być przesłonięte przez ustawienia w tabeli. Nie można tak zrobić z LOGNAME, który jest użytkownikiem, z którego uruchamiane jest polecenie. .PP Inna uwaga: zmienna LOGNAME nazywa się czasem USER na systemach BSD... na tych systemach ustawiana będzie również zmienna USER. .PP In addition to LOGNAME, HOME, and SHELL, \fIcron\fP(8) will look at MAILTO and MAILFROM if it has any reason to send mail as a result of running commands in \*(lqthis\*(rq crontab. .PP If MAILTO is defined (and non\-empty), mail is sent to the user so named. MAILTO may also be used to direct mail to multiple recipients by separating recipient users with a comma. If MAILTO is defined but empty (MAILTO=""), no mail will be sent. Otherwise mail is sent to the owner of the crontab. .PP If MAILFROM is defined, the sender email address is set to MAILFROM. Otherwise mail is sent as "root (Cron Daemon)". .PP W systemach Debian GNU/Linux, cron obsługuje moduł \fBpam_env\fP i ładuje zmienną podaną w \fI/etc/environment\fP i \fI/etc/security/pam_env.conf\fP. Odczytuje również informacje o ustawieniach językowych z \fI/etc/default/locale\fP. Jednak ustawienia PAM \fBNIE\fP przesłonią ustawień opisanych powyżej, ani żadnych ustawień z samego pliku \fIcrontab\fP. W szczególności, jeśli chce się ustawić zmienną PATH na inną niż "/usr/bin:/bin", konieczne jest wykonanie tego w samej tabeli. .PP Domyślnie, cron wyśle wiadomość używając nagłówka pocztowego "Content\-Type:" z "text/plain" i parametrem "charset=" ustawionym na mapę znaków lub kodowanie ustawień językowych (locale), w momencie uruchomienia \fBcrond\fP(8); to znaczy albo domyślnych ustawień systemowych, jeśli nie ustawiono zmiennych środowiskowych LC_* albo określonych zmiennymi LC_* (patrz \fBlocale\fP(7)). Można użyć innego kodowania do wysyłanych wiadomości zadań crona, ustawiając zmienne CONTENT_TYPE i CONTENT_TRANSFER_ENCODING w plikach crontab, na właściwe wartości nagłówków pocztowych. .PP The format of a cron command is very much the V7 standard, with a number of upward\-compatible extensions. Each line has five time and date fields, followed by a command, followed by a newline character ('\en'). The system crontab (/etc/crontab) uses the same format, except that the username for the command is specified after the time and date fields and before the command. The fields may be separated by spaces or tabs. The maximum permitted length for the command field is 998 characters. .PP Polecenia są wywoływane przez demona \fBcron\fP(8), gdy minuta, godzina i miesiąc z wpisu odpowiadają czasowi bieżącemu \fIoraz\fP gdy przynajmniej jedno z dwóch pól dnia (dzień miesiąca lub dzień tygodnia) odpowiadają czasowi bieżącemu (patrz "Uwagi" poniżej). Program \fBcron\fP(8) sprawdza wpisy cron co minutę. Pola czasu i daty to: .IP .ta 1.5i Pole dozwolone wartości .br \-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- .br minuta 0\(en59 .br godzina 0\(en23 .br dzień miesiąca 1\(en31 .br miesiąc 1\(en12 (albo nazwy, patrz niżej) .br dzień tygodnia 0\(en7 (0 lub 7 jest niedzielą; albo nazwy) .br .PP Pole może mieć gwiazdkę (\fB*\fP), która oznacza "pierwszy\-ostatni". .PP Dozwolone są zakresy liczb. Zakresy są dwiema liczbami, oddzielonymi myślnikiem. Zakres ten jest domknięty. Na przykład, 8\fB\-\fP11 dla "godzin" oznacza wywoływanie w godzinach 8, 9, 10, 11. .PP Dozwolone są też listy. Lista jest zbiorem liczb (lub zakresów), oddzielonych przecinkami. Przykłady: "1\fB,\fP2\fB,\fP5\fB,\fP9", "0\-4\fB,\fP8\-12". .PP W połączeniu z zakresami można używać wartości krokowych. Napisanie za zakresem elementu "\fB/\fP" 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 "*\fB/\fP2". .PP Dla "miesięcy" i "dni tygodnia" można używać również \fBnazw\fP. 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. .PP Szóste pole (reszta wiesza) określa \fBpolecenie\fP, 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 (\e), zostaną zamienione w znaki nowego wiersza, a wszelkie dane za pierwszym % zostaną przesłane na standardowe wejście polecenia. Nie da się podzielić pojedynczego polecenia na wiele wierszy, tak jak w powłoce można to zrobić kończąc wiersz "\e". .PP Note: The day of a command's execution can be specified by two fields \(em day of month, and day of week. If both fields are restricted (i.e., don't start with *), the command will be run when \fIeither\fP field matches the current time. For example, .br \*(lq30 4 1,15 * 5\*(rq spowoduje wywołanie komendy o 4:30 pierwszego i 15\-tego każdego miesiąca plus każdy piątek. Można jednak osiągnąć zamierzone działanie dodając do polecenia test (patrz ostatni przykład w PRZYKŁADOWY PLIK CRONA poniżej). .PP Zamiast pierwszych pięciu pól, można użyć jednego z ośmiu łańcuchów specjalnych: .IP .ta 1.5i łańcuch znaczenie .br \-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\- .br \fB@reboot\fP uruchamia raz, przy rozruchu; .br \fB@yearly\fP uruchamia raz w roku, "0 0 1 1 *"; .br \fB@annually\fP (to samo co @yearly); .br \fB@monthly\fP uruchamia raz w miesiącu, "0 0 1 * *"; .br \fB@weekly\fP uruchamia raz w tygodniu, "0 0 * * 0"; .br \fB@daily\fP uruchamia raz na dzień, "0 0 * * *"; .br \fB@midnight\fP (to samo co @daily); .br \fB@hourly\fP uruchamia raz na godzinę, "0 * * * *". .br .PP Za rozruch, w przypadku łańcucha @reboot, uważa się rozruch demona \fBcron\fP(8). W szczególności, może być to wcześniej, niż uruchomią się pewne demony systemowe lub inne usługi. Jest to spowodowane kolejnością startową danego komputera. .SH "PRZYKŁADOWA TABELA CRON" Poniżej znajduje się przykład pliku crontab użytkownika. .nf # use /bin/bash to run commands, instead of the default /bin/sh SHELL=/bin/bash # mail any output to `paul', no matter whose crontab this is MAILTO=paul # # run five minutes after midnight, every day 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 # run at 2:15pm on the first of every month \(em output mailed to paul 15 14 1 * * $HOME/bin/monthly # run at 10 pm on weekdays, annoy Joe 0 22 * * 1\-5 mail \-s "It's 10pm" joe%Joe,%%Where are your kids?% 23 0\-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday" 5 4 * * sun echo "run at 5 after 4 every Sunday" 0 */4 1 * mon echo "run every 4th hour on the 1st and on every Monday" 0 0 */2 * sun echo "run at midn on every Sunday that's an uneven date" # Run on every second Saturday of the month 0 4 8\-14 * * test $(date +\e%u) \-eq 6 && echo "2nd Saturday" .fi .PP All the above examples run non\-interactive programs. If you wish to run a program that interacts with the user's desktop you have to make sure the proper environment variable \fIDISPLAY\fP is set. .\" Note: Based on some web searches, below example might not fully .\" work in all systems, as notify-send might require also .\" to have knowledge of the dbus session in use (through the environment) .\" However, adding that code here is an overkill .nf # Execute a program and run a notification every day at 10:00 am 0 10 * * * $HOME/bin/program | DISPLAY=:0 notify\-send "Program run" "$(cat)" .fi .SH "PRZYKŁADOWA SYSTEMOWA TABELA CRON" Poniżej znajduje się zawartość standardowego, systemowego pliku crontab (z przetłumaczonym wyjaśnieniem). W przeciwieństwie do pliku crontab użytkownika, ten plik ma pole "nazwa użytkownika", zgodnie z /etc/crontab. .nf # /etc/crontab: systemowy crontab # W przeciwieństwie do innych plików crontab, nie ma potrzeby # uruchamiania polecenia "crontab" w celu zainstalowania nowej # wersji pliku, po jego edycji i po edycji plików w /etc/cron.d # Pliki te mają również pole "nazwa użytkownika", którego nie # posiadają inne pliki crontab. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # Example of job definition: # .\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- minute (0 \- 59) # | .\-\-\-\-\-\-\-\-\-\-\-\-\- hour (0 \- 23) # | | .\-\-\-\-\-\-\-\-\-\- day of month (1 \- 31) # | | | .\-\-\-\-\-\-\- month (1 \- 12) OR jan,feb,mar,apr ... # | | | | .\-\-\-\- day of week (0 \- 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # m h dom mon dow user command 17 * * * * root cd / && run\-parts \-\-report /etc/cron.hourly 25 6 * * * root test \-x /usr/sbin/anacron || ( cd / && run\-parts \-\-report /etc/cron.daily ) 47 6 * * 7 root test \-x /usr/sbin/anacron || ( cd / && run\-parts \-\-report /etc/cron.weekly ) 52 6 1 * * root test \-x /usr/sbin/anacron || ( cd / && run\-parts \-\-report /etc/cron.monthly ) # .fi Note that all the system\-wide tasks will run, by default, from 6 am to 7 am. In the case of systems that are not powered on during that period of time, only the hourly tasks will be executed unless the defaults above are changed. .SH "ZOBACZ TAKŻE" cron(8), crontab(1) .SH 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. .PP Listy i zasięgi mogą koegzystować w tym samym polu. "1\-3,7\-9" będzie odrzucone przez crona AT&T i BSD \(em chcą one widzieć TYLKO "1\-3" lub "7,8,9". .PP Zakresy mogą zawierać "kroki", więc "1\-9/2" jest tym samym co "1,3,5,7,9". .PP Nazwy miesiąca lub dnia tygodnia mogą być podawane przez nazwę (angielską). .PP W tabeli można ustawiać zmienne środowiskowe. W BSD i AT&T, środowisko przekazywane procesom potomnym jest po prostu tym z /etc/rc. .PP 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). .PP Wszystkie polecenia "@", które mogą pojawić się w miejscu pierwszych pięciu pól są rozszerzeniami. .SH OGRANICZENIA Demon \fBcron\fP działa w zdefiniowanej strefie czasowej. Obecnie, nie obsługuje stref czasowych różnych dla konkretnych użytkowników. Wszystkie zadania: systemowe i użytkownika będą uruchamiane w skonfigurowanej strefie czasowej. Nawet jeśli użytkownik poda zmienną środowiskową \fITZ\fP w swoim pliku \fIcrontab\fP, to dotknie to wyłącznie poleceń wykonywanych w tej tabeli, a nie samych zadań crontab. POSIX specifies that the day of month and the day of week fields both need to match the current time if either of them \fIis\fP a *. However, this implementation only checks if the \fIfirst character\fP is a *. This is why "0 0 */2 * sun" runs every Sunday that's an uneven date while the POSIX standard would have it run every Sunday and on every uneven date. The \fIcrontab\fP syntax does not make it possible to define all possible periods one can imagine. For example, it is not straightforward to define the last weekday of a month. To have a task run in a time period that cannot be defined using \fIcrontab\fP syntax, the best approach would be to have the program itself check the date and time information and continue execution only if the period matches the desired one. Jeśli program nie może tego wykonać, to konieczny może być skrypt opakowujący. Przydatnymi narzędziami do analizy daty są \fBncal\fP i \fBcalendar\fP. Na przykład, aby uruchomić progra w ostatnią niedzielę każdego miesiąca, można użyć poniższego kodu opakowującego: .nf 0 4 * * Sat [ "$(date +\e%e)" = "$(LANG=C ncal | sed \-n 's/^Sa .* \e([0\-9]\e+\e) *$/\e1/p')" ] && echo "Last Saturday" && program_to_run .fi .SH DIAGNOSTYKA Program cron wymaga, aby każdy wpis w pliku crontab kończył się znakiem nowego wiersza. Jeśli ostatni wpis w pliku crontab nie będzie go posiadał (tzn.\& zakończy się bezpośrednio EOF), to cron stwierdzi, że crontab jest (przynajmniej częściowo) uszkodzony i odmówi jego instalacji. Ostrzeżenie zostanie wypisane do sysloga. .SH AUTOR Paul Vixie jest autorem \fBcron\fPa i pierwotnym twórcą tej strony podręcznika systemowego. Niniejsza strona została również zmodyfikowana do Debiana przez Steve'a Greenlanda, Javiera Fernandez\-Sanguino, Christiana Kastnera i Christiana Pekelera. .PP .SH TŁUMACZENIE Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys , Wojtek Kotwica i Michał Kułach . .PP Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License w wersji 3 .UE lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI. .PP Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej .MT manpages-pl-list@lists.sourceforge.net .ME .