Provided by: manpages-pl_4.15.0-9_all bug

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. 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ć

           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. Aby zdefiniować pustą zmienną, trzeba
       zastosować cudzysłowy.

       Łańcuch wartość nie jest przetwarzany pod kątem podstawień  zmiennych  środowiskowych  lub
       zastąpień zmiennych, tak więc wiersze takie jak

           PATH = $HOME/bin:$PATH
           PATH = ~/bin:/usr/bin:/bin

       nie będą działać zgodnie z przewidywaniami. Tak samo będzie z tym przykładem:

           A=1
           B=2
           C=$A $B

       Nie nastąpi podmiana zdefiniowanymi zmiennymi w ostatniej wartości.

       Wiele zmiennych środowiskowych jest ustawianych automatycznie przez demona cron(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.

       Inna  uwaga:  zmienna LOGNAME nazywa się czasem USER na systemach BSD... na tych systemach
       ustawiana będzie również zmienna USER.

       In addition to LOGNAME, HOME, and SHELL, cron(8)  will look at MAILTO and MAILFROM  if  it
       has any reason to send mail as a result of running commands in “this” crontab.

       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.

       If MAILFROM is defined, the sender email address is set to  MAILFROM.  Otherwise  mail  is
       sent as "root (Cron Daemon)".

       W  systemach  Debian  GNU/Linux,  cron  obsługuje  moduł pam_env i ładuje zmienną podaną w
       /etc/environment i /etc/security/pam_env.conf. Odczytuje również informacje o ustawieniach
       językowych  z /etc/default/locale. Jednak ustawienia PAM NIE przesłonią ustawień opisanych
       powyżej, ani żadnych ustawień z samego pliku crontab.  W  szczególności,  jeśli  chce  się
       ustawić  zmienną  PATH  na inną niż "/usr/bin:/bin", konieczne jest wykonanie tego w samej
       tabeli.

       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 crond(8); to znaczy albo domyślnych  ustawień
       systemowych,  jeśli nie ustawiono zmiennych środowiskowych LC_* albo określonych zmiennymi
       LC_* (patrz locale(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.

       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 ('\n').  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.

       Polecenia  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  (patrz  "Uwagi" poniżej). Program
       cron(8) sprawdza wpisy cron co minutę. Pola czasu i daty to:

              Pole           dozwolone wartości
              ----           ------------------
              minuta         0–59
              godzina        0–23
              dzień miesiąca 1–31
              miesiąc        1–12 (albo nazwy, patrz niżej)
              dzień tygodnia 0–7 (0 lub 7 jest niedzielą; 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. Nie da się
       podzielić pojedynczego polecenia na wiele wierszy, tak  jak  w  powłoce  można  to  zrobić
       kończąc wiersz "\".

       Note:  The day of a command's execution can be specified by two fields — day of month, and
       day of week.  If both fields are restricted (i.e., don't start with *), the  command  will
       be run when either field matches the current time.  For example,
       “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. Można jednak osiągnąć zamierzone działanie dodając  do  polecenia  test
       (patrz ostatni przykład w PRZYKŁADOWY PLIK CRONA poniżej).

       Zamiast pierwszych pięciu pól, można użyć jednego z ośmiu łańcuchów specjalnych:

              łańcuch        znaczenie
              -------        ---------
              @reboot        uruchamia raz, przy rozruchu;
              @yearly        uruchamia raz w roku, "0 0 1 1 *";
              @annually      (to samo co @yearly);
              @monthly       uruchamia raz w miesiącu, "0 0 1 * *";
              @weekly        uruchamia raz w tygodniu, "0 0 * * 0";
              @daily         uruchamia raz na dzień, "0 0 * * *";
              @midnight      (to samo co @daily);
              @hourly        uruchamia raz na godzinę, "0 * * * *".

       Za   rozruch,   w  przypadku  łańcucha  @reboot,  uważa  się  rozruch  demona  cron(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.

PRZYKŁADOWA TABELA CRON

       Poniżej znajduje się przykład pliku crontab użytkownika.

       # 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 — 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 +\%u) -eq 6 && echo "2nd Saturday"

       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
       DISPLAY is set.

       # 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)"

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.

       # /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 usercommand
       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 )
       #

       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.

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 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 przez nazwę (angielską).

       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).

       Wszystkie polecenia "@", które mogą  pojawić  się  w  miejscu  pierwszych  pięciu  pól  są
       rozszerzeniami.

OGRANICZENIA

       Demon cron 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ą TZ w swoim pliku crontab, 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 is a *.  However, this implementation only  checks  if  the
       first  character  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 crontab 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 crontab 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ą  ncal  i  calendar. Na przykład, aby uruchomić progra w
       ostatnią niedzielę każdego miesiąca, można użyć poniższego kodu opakowującego:

       0 4 * * Sat   [ "$(date +\%e)" = "$(LANG=C ncal | sed -n 's/^Sa .* \([0-9]\+\) *$/\1/p')" ] && echo "Last Saturday" && program_to_run

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.

AUTOR

       Paul  Vixie  <paul@vix.com>  jest autorem crona 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.

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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   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⟩.