crontab - zarządzanie plikami crontab należącymi do
użytkowników (Vixie Cron)
crontab [ -h]
crontab [ -u user ] [-n] file
crontab [
-u użytkownik ] [
-i ] {
-e |
-l |
-r }
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.
If the
-h option is given,
crontab shows a help message and quits
immediately.
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
"-".
If the
-n option is given, it means "dry run":
crontab
examines "your" crontab for its syntax, and outputs a success
message if this syntax is correct, but nothing is written to any 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 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.
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.
crontab(5),
cron(8)
/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.
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.
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).
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.
Autorami polskiego tłumaczenia niniejszej strony podręcznika
są: Łukasz Kowalczyk <
[email protected]>,
Michał Kułach <
[email protected]> i Szymon
Lamkiewicz <
[email protected]>
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 listy dyskusyjnej
[email protected]