cron - demon do wywoływania odłożonych poleceń
(Vixie Cron)
cron [
-f] [
-l] [
-L poziom-komunikatów]
cron jest uruchamiany automatycznie z /etc/init.d, przy wchodzeniu w
poziom pracy wielu użytkowników.
- -f
- Pozostaje w trybie pierwszoplanowym, nie staje się
demonem.
- -l
- Włącza zgodność nazw
plików w katalogu /etc/cron.d z LSB. To ustawienie nie
wpływa jednak na przetwarzanie plików w katalogach
/etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly lub
/etc/cron.monthly.
- -n
- Include the FQDN in the subject when sending mails. By
default, cron will abbreviate the hostname.
-
-L poziom-komunikatów
- Wybiera, jakie informacje o zadaniach
mają być zapisywane do dziennika (błędy
są logowane niezależnie od tej wartości). Jest to
suma poniższych wartości:
- 1
- zapisuje uruchomienie wszystkich zadań crona
- 2
- zapisuje koniec wszystkich zadań crona
- 4
- zapisuje wszystkie zadania zakończone niepowodzeniem
(kod zakończenia różny od 0)
- 8
- zapisuje numer procesu wszystkich zadań crona
- Domyślnie zapisywane jest uruchomienie wszystkich
zadań (1). Logowanie jest wyłączane, jeśli
poziom-komunikatów jest ustawiony na zero (0).
Wartość równa piętnaście (15) wybierze
wszystkie opcje.
cron przeszukuje swój katalog spool (/var/spool/cron/crontabs) w
poszukiwaniu plików crontab (które są nazwane zgodnie z
kontami w /etc/passwd); odnalezione pliki są następnie
ładowane do pamięci. Proszę zauważyć,
że pliki crontab w tym katalogu nie powinny być osiągane
bezpośrednio - do ich aktualizacji i dostępu powinno być
używane polecenie
crontab.
cron odczytuje również /etc/crontab, które posiada
nieco inny format (patrz
crontab(5)). W Debianie,
zawartość /etc/crontab jest predefiniowana do uruchamiania
programów w katalogach /etc/cron.hourly, /etc/cron.daily,
/etc/cron.weekly i /etc/cron.monthly. Konfiguracja ta jest charakterystyczna
dla Debiana, proszę zapoznać się z opisem w
poniższym rozdziale
ZMIANY ODNOSZĄCE SIĘ DO
DEBIANA.
Additionally, in Debian,
cron reads the files in the /etc/cron.d
directory.
cron treats the files in /etc/cron.d as in the same way as
the /etc/crontab file (they follow the special format of that file, i.e. they
include the
user field). However, they are independent of /etc/crontab:
they do not, for example, inherit environment variable settings from it. This
change is specific to Debian see the note under
DEBIAN SPECIFIC below.
Podobnie jak /etc/crontab, pliki w katalogu /etc/cron.d są monitorowane w
poszukiwaniu zmian. Ogólnie, administrator systemu nie powinien
używać /etc/cron.d/, lecz standardowego pliku /etc/crontab.
Plik /etc/crontab i pliki w /etc/cron.d muszą był
własnością roota i nie mogą być zapisywalne
dla grupy lub innych. W odróżnieniu od katalogu spool, pliki w
katalogach /etc/cron.d oraz /etc/cron.hourly, /etc/cron.daily,
/etc/cron.weekly i /etc/cron.monthly mogą być
również dowiązaniami symbolicznymi pod warunkiem,
że zarówno samo dowiązanie jak i plik na który ono
wskazuje, są własnością roota. Pliki w katalogu
/etc/cron.d nie muszą być wykonywalne, natomiast pliki w
katalogach /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly i
/etc/cron.monthly - muszą, ponieważ są uruchamiane przez
run-parts (patrz podręcznik
run-parts(8)).
cron then wakes up every minute, examining all stored crontabs, checking
each command to see if it should be run in the current minute. When executing
commands, any output is mailed to the owner of the crontab (or to the user
named in the MAILTO environment variable in the crontab, if such exists) from
the owner of the crontab (or from the email address given in the MAILFROM
environment variable in the crontab, if such exists). The children copies of
cron running these processes have their name coerced to uppercase, as will be
seen in the syslog and ps output.
Dodatkowo,
cron sprawdza co minutę, czy czas modyfikacji swojego
katalogu spool (lub pliku
/etc/crontab) nie zmienił się,
a jeśli tak się stało, to
cron sprawdza czasy
modyfikacji wszystkich plików crontab i przeładowuje te z nich,
które się zmieniły. Z tego powodu
cron nie musi
być restartowany po modyfikacji plików crontab. Proszę
zauważyć, że polecenie
crontab(1) aktualizuje czas
modyfikacji katalogu spool, niezależnie od tego, czy
zmodyfikował plik crontab.
Specjalnym przypadkiem jest, gdy czas zmieni się o mniej niż 3
godziny, np. na początku lub końcu obowiązywania czasu
letniego. Jeśli czas przesuwa się do przodu, to zadania,
które byłyby uruchomione w czasie, który został
przesunięty, są uruchamiane zaraz po wystąpieniu zmiany.
I na odwrót - jeśli czas przesunie się do tyłu o
mniej niż 3 godziny, to zadania, które przypadają w
powtórzonym czasie, nie będą uruchamiane ponownie.
Tyczy się to wyłącznie zadań wykonywanych w
określonym czasie (niepodanych jako @hourly, ani nie
używających "*" jako określenia godziny lub
minuty). Zadania, które są podawane z wieloznacznikiem,
są uruchamiane od razu na podstawie nowego czasu.
Zmiany zegara o więcej niż 3 godziny, są uważane za
poprawki zegara i od razu używany jest nowy czas.
Program
cron zapisuje swoje działania do
właściwości "cron" sysloga, a logowanie
może być kontrolowane przy użyciu standardowej
właściwości
syslogd(8).
Jeśli zmienne środowiskowe lokalizacji (regionalne) w systemie
Debian, w katalogu
/etc/default/cron, zostaną skonfigurowane, to
można nimi zarządzać używając
/etc/environment albo za pomocą
/etc/default/locale, przy
czym wartości z drugiego pliku przesłaniają te z
pierwszego. Pliki te są odczytywane i są używane do
ustawienia zmiennych środowiskowych LANG, LC_ALL i LC_CTYPE. Zmienne te
są używane do ustawienia kodowania poczty elektronicznej, przy
czym domyślnie wynosi ono "C".
NIE wpływa to na środowisko zadań uruchamianych
przez cron. Więcej informacji o modyfikowaniu środowiska
zadań zawiera strona podręcznika
crontab(5).
Demon będzie używał, jeśli jest obecna, definicji
strefy czasowej z pliku
/etc/timezone.
Środowisko może zostać przefediniowane przez definicje z
plików crontab użytkownika, lecz
cron obsługuje
wykonywanie zadań jedynie w pojedynczej strefie czasowej.
Debian wprowadził pewne zmiany do
crona, które nie
były dostępne w oryginale. Najważniejsze zmiany to:
- —
- obsługa /etc/cron.{hourly,daily,weekly,monthly}
poprzez /etc/crontab,
- —
- obsługa /etc/cron.d (katalog do umieszczania
plików crontab pakietów),
- —
- obsługa PAM,
- —
- obsługa SELinux,
- —
- obsługa auditlog,
- —
- obsługa DST (czasu letniego) i inne zmiany/poprawki
w stosunku do czasu,
- —
- SGID crontab(1) zamiast SUID root,
- —
- debianowe położenia plików i
polecenia,
- —
- debianowa konfiguracja (/etc/default/cron),
- —
- wiele innych mniejszych funkcji i poprawek.
Obsługa /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly i
/etc/cron.monthly w Debianie jest zapewniona przez domyślne ustawienia
w pliku /etc/crontab (patrz systemowy przykład w
crontab(5)).
Domyślny, ogólnosystemowy plik crontab zawiera cztery zadania,
uruchamiane: cogodzinnie, codziennie, cotygodniowo i comiesięcznie.
Każde z tych zadań wykona
run-parts, podając
każdy z tych katalogów jako argument. Zadania są
wyłączane, jeśli zainstalowany jest
anacron (z
wyjątkiem zadań cogodzinnych) aby zapobiec konfliktom
pomiędzy oboma demonami.
As described above, the files under these directories have to pass some sanity
checks including the following: be executable, be owned by root, not be
writable by group or other and, if symlinks, point to files owned by root.
Additionally, the file names must conform to the filename requirements of
run-parts: they must be entirely made up of letters, digits and can
only contain the special signs underscores ('_') and hyphens ('-'). Any file
that does not conform to these requirements will not be executed by
run-parts. For example, any file containing dots will be ignored. This
is done to prevent cron from running any of the files that are left by the
Debian package management system when handling files in /etc/cron.d/ as
configuration files (i.e. files ending in .dpkg-dist, .dpkg-orig, .dpkg-old,
and .dpkg-new).
Funkcja ta może zostać użyta przez administratorów
systemu i pakiety, do zdefiniowania zadań, które mają
być uruchamiane w zdefiniowanych interwałach. Pliki tworzone
przez pakiety w tych katalogach, powinny być nazywane tak samo, jak
dostarczający je pakiet.
Support for /etc/cron.d is included in the
cron daemon itself, which
handles this location as the system-wide crontab spool. This directory can
contain any file defining tasks following the format used in /etc/crontab,
i.e. unlike the user cron spool, these files must provide the username to run
the task as in the task definition.
Files in this directory have to be owned by root, do not need to be executable
(they are configuration files, just like /etc/crontab) and must conform to the
same naming convention as used by
run-parts(8) : they must consist
solely of upper- and lower-case letters, digits, underscores, and hyphens.
This means that they
cannot contain any dots. If the
-l option
is specified to
cron (this option can be setup through
/etc/default/cron, see below), then they must conform to the LSB namespace
specification, exactly as in the
--lsbsysinit option in
run-parts.
Przeznaczeniem tej funkcji było umożliwienie pakietom,
wymagającym dokładniejszej kontroli harmonogramu niż
/etc/cron.{hourly,daily,weekly,monthly}, dodawania swoich plików
crontab do /etc/cron.d. Pliki te powinny być nazwane tak samo, jak
udostępniający je pakiet.
Domyślna konfiguracja
crona jest kontrolowana przez plik
/etc/default/cron, który jest odczytywany przez skrypt init.d,
uruchamiający demona
cron. Plik ten określa, czy
cron będzie czytał systemowe zmienne środowiskowe
oraz umożliwia dodawanie dodatkowych opcji do programu
cron,
przed jego wykonaniem - umożliwiając konfigurację
zapisywanego dziennika lub definiowanie sposobu traktowania plików w
katalogu /etc/cron.d.
crontab(1),
crontab(5),
run-parts(8)
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ą: Przemek Borys <
[email protected]> i Michał
Kułach <
[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]