Manpages

NAZWA

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

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

ZOBACZ TAKŻE

crontab(5), cron(8)

PLIKI

/etc/cron.allow
/etc/cron.deny
/var/spool/cron/crontabs

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 zabroni dostępu wszystkim użytkownikom do czasu poprawienia tych uprawnień.

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.

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

AUTOR

Paul Vixie <paul [AT] vix.com> 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 są: Łukasz Kowalczyk <lukow [AT] tempac.pl>, Michał Kułach <michal.kulach [AT] gmail.com> i Szymon Lamkiewicz <s.lam [AT] 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 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres <manpages-pl-list [AT] lists.net>.