CRONTAB(1)

NAZWA
crontab - zarządzanie plikami crontab należącymi do użytkowników (Vixie Cron)

SKŁADNIA

crontab [-h]

crontab [-u użytkownik] [-n] plik

crontab [-u użytkownik] [-i] {-e | -l | -r}

OPIS

crontab jest programem służącym do instalacji, dezinstalacji lub oglądania zawartości tabel używanych przez demon cron(8) z pakietu Vixie Cron. Każdy użytkownik może posiadać własną tabelę. Tabele cron są plikami przechowywanymi w katalogu /var/spool/cron/crontabs, lecz nie powinny być bezpośrednio modyfikowane.

Jeżeli istnieje plik /etc/cron.allow, użytkownik musi być w nim wymieniony, by mieć możliwość używania polecenia crontab. Jeżeli nie istnieje plik /etc/cron.allow lecz istnieje plik /etc/cron.deny, użytkownik nie może być w nim wymieniony, by używać tego polecenia.

Proszę sprawdzić, czy uprawnienia pliku /etc/cron.allow pozwalają na jego odczyt przed dozwolonych użytkowników. Na przykład uprawnienia rw- r-- r-- (ósemkowe 644) powinny być w porządku.

Jeżeli nie istnieje żaden z tych plików, wówczas dostępność polecenia zależy od ustawień konkretnego systemu. Możliwa jest zarówno sytuacja, kiedy każdy użytkownik ma dostęp do tego polecenia, jak i sytuacja, kiedy dostęp do niego ma tylko administrator.

Jeśli oba pliki istnieją, to /etc/cron.allow ma pierwszeństwo. Oznacza to, że /etc/cron.deny nie jest brany pod uwagę, a użytkownik musi być wypisany w /etc/cron.allow aby mógł używać crontab.

Niezależnie od istnienia każdego z tych plików, użytkownik root zawsze może ustawić crontab. W przypadku standardowych systemów Debian, wszyscy użytkownicy mogą użyć tego polecenia.

Jeśli podano opcję -h, crontab wypisze pomoc i zakończy pracę.

Jeżeli podana zostanie opcja -u, określa ona użytkownika, którego tabele cron mają być użyte (przy wypisywaniu) lub modyfikowane (przy edycji). Jeżeli ta opcja nie jest podana, modyfikowane będą tabele należące do użytkownika uruchamiającego program. Polecenie su(8) może zdezorientować program crontab, a jeśli uruchamia się crontab po wydaniu polecenia su(8), powinno się zawsze używać opcji -u ze względów bezpieczeństwa.

Pierwsza forma wywoływania programu crontab służy do utworzenia nowej tabeli na podstawie podanego pliku lub danych pobranych ze standardowego wejścia, jeżeli podana zostanie pseudo-nazwa pliku „-”.

Jeśli użyto opcji -n, oznacza to „suchy przebieg”: crontab sprawdzi crontab użytkownika pod kątem składni i, jeśli jest poprawna, wypisze informację o powodzeniu, ale nie zapisze niczego do pliku crontab.

Opcja -l powoduje wypisanie bieżącej tabeli na standardowym wyjściu. Proszę sprawdzić również uwagę w rozdziale „ZMIANY ODNOSZĄCE SIĘ DO DEBIANA”.

Opcja -r usuwa bieżącą tabelę crontab.

Opcja -e służy do edycji bieżącej tabeli za pomocą sensible-editor(1). Po opuszczeniu edytora zmodyfikowana tabela zostanie automatycznie zainstalowana.

Opcja -i modyfikuje opcję -r, aby zapytać użytkownika o odpowiedź „y/Y”, przed rzeczywistym usunięciem pliku crontab.

ZMIANY ODNOSZĄCE SIĘ DO DEBIANA

Domyślnym zachowaniem crontab -l jest wyświetlanie trzech wierszy nagłówka "DO NOT EDIT THIS FILE", które są umieszczane na początku pliku crontab, podczas jego instalacji. Niestety, powoduje to problem z sekwencją

crontab -l | crontab -

która staje się nieidempotentna — cały czas dodaje się kopie nagłówka. Powoduje to problemy w skryptach używających polecenia sed do edycji crontaba. W związku z tym, domyślne zachowanie opcji -l zostało zmienione tak, aby nie wypisywać wspomnianego nagłówka. Można przywrócić oryginalne zachowanie, ustawiając zmienną środowiskową CRONTAB_NOHEADER na „N”, które powoduje, że crontab -l wypisuje dodatkowy nagłówek.

PODŚWIETLANIE WYJŚCIA POLECENIA CRONTAB -l

Polecenie crontab -l wypisuje zwykły tekst. Jeśli terminal obsługuje koloryzujące sekwencje ANSI, wyjście można urozmaicić wywołując: crontab -l | spc -t crontab (gdy tło terminala jest ciemne) lub crontab -l | spc -t crontab-light (gdy jest jasne).

Schemat podświetlania można zmodyfikować przy użyciu dostosowanych wersji plików /etc/supercat/spcrc-crontab*

Tekst ten można również pokolorować za pomocą programu batcat(1) z pakietu bat, oto przykład:

crontab -l | batcat --language Crontab

ZOBACZ TAKŻE

crontab(5), cron(8), spc(1)

PLIKI

/etc/cron.allow, /etc/cron.deny
    Pliki /etc/cron.allow oraz /etc/cron.deny, o ile istnieją, muszą być do odczytu dla wszystkich, lub dla grupy „crontab”. Jeśli nie są, cron(8) zabroni dostępu wszystkim użytkownikom do czasu poprawienia tych uprawnień.

/var/spool/cron/crontabs
    W katalogu /var/spool/cron/crontabs znajduje się po jednym pliku crontab dla każdego użytkownika. Użytkownicy nie mogą edytować plików w tym katalogu bezpośrednio, aby upewnić się, że jedynie użytkownicy upoważnieni do wykonywania zadań okresowych mogą je dodawać oraz tylko poprawne składniowo pliki crontab będą tu zapisywane. Wymusza się to przez umożliwienie zapisu do katalogu jedynie przez grupę „crontab” i skonfigurowanie polecenia crontab z ustawionym bitem setgid dla tej grupy.

STANDARDY

Polecenie crontab jest zgodne ze standardem IEEE Std1003.2-1992 („POSIX”). Nowa składnia polecenia różni się od składni używanej przez poprzednie wersje Vixie Cron, jak również od klasycznej składni SVR3.

DIAGNOSTYKA

Po uruchomieniu programu z błędną opcją pojawi się zrozumiały opis popełnionego błędu.

cron(8) wymaga, aby każdy wpis w pliku crontab kończył się znakiem nowego wiersza. Jeśli ostatni wpis w crontab nie będzie posiadał znaku nowego wiersza, to cron(8) stwierdzi, że crontab jest (przynajmniej częściowo) uszkodzony i odmówi jego instalacji.

Pliki w katalogu /var/spool/cron/crontabs są nazwane na podstawie nazwy użytkownika. Zadania crontab nie zostaną uruchomione dla użytkowników, których nazwa została zmieniona w efekcie zmian w lokalnym systemie, czy też w centralnej bazie użytkowników (zewnętrznej dla systemu, na przykład katalog LDAP).

AUTORZY

Paul Vixie <paul@vix.com>
    Autor niniejszej strony podręcznika (1994).

Steve Greenland <stevegr@debian.org>
    Opiekun pakietu (1996-2005).

Javier Fernández-Sanguino Peña <jfs@debian.org>
    Opiekun pakietu (2005-2014).

Christian Kastner <ckk@debian.org>
    Opiekun pakietu (2010-2016).

Georges Khaznadar <georgesk@debian.org>
    Opiekun pakietu (2022-2024).

PRAWA AUTORSKIE
Copyright © 1994 Paul Vixie

Można dystrybuować dowolnie, z następującymi zastrzeżeniami: nie usuwaj moich danych ze źródeł ani dokumentacji (nie przypisuj sobie mojej pracy), oznaczaj swoje zmiany (abym nie był obwiniany za błędy, które mogłeś wprowadzić), nie zmieniaj [oryginalny tekst licencji jest dostępny w angielskiej wersji podręcznika — przyp. tłum.], ani nie usuwaj niniejszego zastrzeżenia. Może być sprzedawany, jeśli źródła służące do jego zbudowania są przekazywane kupującemu. Niniejsze oprogramowanie jest pozbawione jakiejkolwiek gwarancji, jawnej lub dorozumianej; używasz na własne ryzyko, odpowiedzialność za (potencjalne) szkody spoczywa w całości na użytkowniku.

Od 1994 roku, Deweloperzy Debiana opiekujący się cronem dokonali wielu zmian w niniejszym podręczniku; wyżej wykazano skróconą listę, więcej informacji znajduje się w pliku /usr/share/doc/cron/copyright.

TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: Łukasz Kowalczyk <lukow@tempac.okwf.fuw.edu.pl>, Michał Kułach <michal.kulach@gmail.com> i Szymon Lamkiewicz <s.lam@o2.pl>

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.