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

SKŁADNIA

crontab [ -u użytkownik ] 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.

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ż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. Proszę zauważyć, że polecenie su(8) może zdezorientować program crontab. Jeżeli 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 "-"

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

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

Opcja -e służy do modyfikacji bieżącej tabeli przy pomocy edytora, którego nazwa znajduje się w jednej ze zmiennych środowiskowych VISUAL lub EDITOR. Po opuszczeniu edytora zmodyfikowana tabela zostanie automatycznie zainstalowana. Jeśli żadna ze zmiennych środowiskowych nie jest zdefiniowana, to używany jest domyślny edytor /usr/bin/editor.

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

PLIKI

/etc/cron.allow
/etc/cron.deny
/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 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 stwierdzi, że crontab jest (przynajmniej częściowo) uszkodzony i odmówi jego instalacji.

AUTOR

Paul Vixie <[email protected]> jest autorem programu cron i pierwotnym twórcą niniejszej strony podręcznika systemowego. Strona została również zmodyfikowana dla Debiana przez Steve'a Greenlanda, Javiera Fernandeza-Sanguino i Christiana Kastnera.

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Łukasz Kowalczyk (PTM) <[email protected]> i Michał Kułach <[email protected]>.

Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 3.0pl1 oryginału.