PLD-doc/book/pl_book__uslugi/pl_uslugi__cron.sec
qwiat
cvs w pld-linux.org
Czw, 17 Lis 2005, 02:07:14 CET
Author: qwiat
Date: Thu Nov 17 02:07:11 2005
New Revision: 6536
Modified:
PLD-doc/book/pl_book__uslugi/pl_uslugi__cron.sec
Log:
- nowy podzial sekcji, nowe tytuly
- nowa sekcja na koncu
- bardziej szczegolowe opisy
- cala masa kosmetyki
Modified: PLD-doc/book/pl_book__uslugi/pl_uslugi__cron.sec
==============================================================================
--- PLD-doc/book/pl_book__uslugi/pl_uslugi__cron.sec (original)
+++ PLD-doc/book/pl_book__uslugi/pl_uslugi__cron.sec Thu Nov 17 02:07:11 2005
@@ -1,127 +1,154 @@
<?xml version="1.0" encoding="iso-8859-2"?>
<section id="uslugi_cron">
<title>CRON - Cykliczne wykonywanie zadań</title>
-<para><productname>CRON</productname> jest demonem, którego zadaniem jest
- uruchamianie programów cyklicznie lub o określonej porze. Omówiona
- zostanie instalacja <productname>vixie-cron</productname>, który oprócz
- standardowych usług posiada dodatkowe opcje konfiguracyjne i
+<para><productname>CRON</productname> jest ważnym demonem systemowym, którego
+ zadaniem jest uruchamianie programów cyklicznie lub o określonej porze.
+ Omówiona zostanie instalacja <productname>vixie-cron</productname>, który
+ oprócz standardowych usług posiada dodatkowe opcje konfiguracyjne i
zwiększone bezpieczeństwo</para>
-<section id="uslugi_cron_instalacja">
- <title>Instalacja</title>
- <para>
- Program instalujemy za pomocą poldka:
- <screen># poldek -i vixie-cron</screen>
- Po zainstalowaniu program jest praktycznie gotowy do użycia.
- Można więc od razu uruchomić demona korzystając z polecenia:
- <screen># /etc/rc.d/init.d/crond start</screen>
- Od tej pory demon może działać nieprzerwane - nie wymaga
- restartów po rekonfiguracji.
- </para>
-</section>
-
-
-<section id="uslugi_cron_tabele">
- <title>Tabele</title>
- <para>
- W cronie istnieje podział na zadania systemowe i zadania
- użytkowników. Pierwszych zwykle używa się do prac
- administracyjnych, z drugich korzystają użytkownicy wedle
- własnych potrzeb. Główna konfiguracja umieszczona jest w
- pliku <filename>/etc/cron.d/crontab</filename>, konfiguracje
- lokalne użytkowników przechowywane są w plikach
- <filename>/var/spool/cron/{login}</filename>. O ile
- <filename>/etc/cron.d/crontab</filename> może być swobodnie
- modyfikowany za pomocą edytora tekstu o tyle użytkownicy
- powinni używać w tym celu odpowiedniego narzędzia (opisanego
- w dalszej części).
- </para>
- <para>
- Pliki konfiguracji crona nazywane są tabelami, zarówno główny
- plik konfiguracji jak i konfiguracje użytkowników mają bardzo
- podobną budowę. Są to pliki tekstowe o ściśle ustalonej składni
- - każde zadanie jest definiowane w postaci wierszy wg.
- następującego schematu:
- </para>
- <para>
- <emphasis>{$data-czas} {$użytkownik} {$zadanie}</emphasis>
- </para>
- <para>
- Pierwsze pole określa jak często wykonywane jest zadanie,
- pole <emphasis>{$użytkownik}</emphasis> występuje jedynie
- w konfiguracji globalnej (w
- <filename>/etc/cron.d/crontab</filename>) i wskazuje z
- jakimi prawami uruchamiane ma być zadanie. Trzecie pole to
- operacja która ma być wykonywana. W tabelach użytkowników
- nie podaje się nazwy użytkownika, gdyż polecenia tam zawarte
- są automatycznie wykonywane z prawami ich właściciela.
- </para>
- <para>
- Przykładowe zadania w /etc/cron.d/crontab:
- <screen>02 01 * * * root find /home -size +100M > /root/duze_pliki.txt</screen>
- Przykładowa konfiguracja zwykłego użytkownika:
- <screen>30 * * * * backup.sh</screen>
- </para>
- <para>
- Sekcja {$użytkownik} i {$zadanie} nie wymagają komentarza więc
- opisane zostanie jedynie pole {$data-czas}. Pole to składa się z
- pięciu kolumn:
- <itemizedlist>
- <listitem>
- <para>
- 1-sza kolumna (zakres
- <emphasis>0-59</emphasis>) oznacza
- minuty.
- </para>
- </listitem>
- <listitem>
- <para>
- 2-ga kolumna (zakres
- <emphasis>0-23</emphasis>) oznacza
- godzinę.
- </para>
- </listitem>
- <listitem>
- <para>
- 3-cia kolumna (zakres
- <emphasis>0-31</emphasis>) oznacza
- dzień miesiąca.
- </para>
- </listitem>
- <listitem>
- <para>
- 4-ta kolumna (zakres
- <emphasis>0-12</emphasis>) oznacza
- miesiąc. (0 i 1 to styczeń)
- </para>
- </listitem>
- <listitem>
- <para>
- 5-ta kolumna (zakres
- <emphasis>0-7</emphasis>) oznacza dzień
- tygodnia (0 i 7 to niedziela)
- </para>
- </listitem>
- <listitem>
- <para>
- 6-ta kolumna określa komendę jaka
- powinna zostać wykonana dla danego
- wiersza.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- Gwiazdka "*" oznacza cały zakres z możliwego przedziału.
- Same zakresy w pierwszych pięciu kolumnach mogą być
- reprezentowane w różny sposób. Więcej szczegółów na ten temat
- dowiemy się wywołując polecenie <command>man 5 crontab</command>
- </para>
- <para>
- Program <productname>vixie-cron</productname> posiada także mało udokumentowany format wykonywania poleceń
- </para>
- <screen>
-nazwa działanie
+ <section id="uslugi_cron_instalacja">
+ <title>Instalacja</title>
+ <para>
+ Program instalujemy za pomocą poldka:
+ <screen># poldek -i vixie-cron</screen>
+ Po zainstalowaniu program jest praktycznie gotowy do użycia.
+ Można więc od razu uruchomić demona korzystając z polecenia:
+ <screen># /etc/rc.d/init.d/crond start</screen>
+ Od tej pory demon może działać nieprzerwane - nie wymaga
+ restartów po rekonfiguracji.
+ </para>
+ </section>
+
+
+ <section id="uslugi_cron_tabele">
+ <title>Budowa tabel</title>
+ <para>
+ W cronie istnieje podział na zadania systemowe i zadania
+ użytkowników. Pierwszych zwykle używa się do prac
+ administracyjnych, z drugich korzystają użytkownicy wedle
+ własnych potrzeb (o ile mają do tego prawo). Główna
+ konfiguracja demona (systemowa) umieszczona
+ jest w pliku <filename>/etc/cron.d/crontab</filename>, konfiguracje
+ lokalne użytkowników przechowywane są w plikach
+ <filename>/var/spool/cron/{$login}</filename>. O ile
+ <filename>/etc/cron.d/crontab</filename> może być swobodnie
+ modyfikowany za pomocą edytora tekstu, o tyle użytkownicy
+ powinni używać w tym celu odpowiedniego narzędzia (opisanego
+ w dalszej części).
+ </para>
+ <para>
+ Pliki konfiguracji crona nazywane są tabelami, zarówno główny
+ plik konfiguracji jak i konfiguracje użytkowników mają bardzo
+ podobną budowę. Są to pliki tekstowe o ściśle ustalonej składni, w
+ których jeden wiersz odpowiada jednemu zadaniu. Wiersz tabeli
+ systemowej ma następującą składnię:
+ </para>
+ <para>
+ <emphasis>{$data-czas} {$użytkownik} {$zadanie}</emphasis>
+ </para>
+ <para>
+ Nieco prostszą budowę mają tabele użytkowników:
+ </para>
+ <para>
+ <emphasis>{$data-czas} {$zadanie}</emphasis>
+ </para>
+ <para>
+ Pierwsze pole określa jak często wykonywane jest zadanie,
+ pole <emphasis>{$użytkownik}</emphasis> występuje jedynie
+ w konfiguracji globalnej (w
+ <filename>/etc/cron.d/crontab</filename>) i wskazuje z
+ jakimi prawami uruchamiane ma być zadanie. Trzecie pole to
+ operacja która ma być wykonywana. W tabelach użytkowników
+ nie podaje się nazwy użytkownika, gdyż polecenia tam zawarte
+ są automatycznie wykonywane z prawami ich właściciela.
+ </para>
+ <para>
+ Przykładowe zadania w /etc/cron.d/crontab:
+ <screen>02 01 * * * root find /home -size +100M > /root/duze_pliki.txt</screen>
+ Przykładowa konfiguracja zwykłego użytkownika:
+ <screen>30 * * * * backup.sh</screen>
+ </para>
+ <para>
+ W tabelach oprócz zadań możemy definiować zmienne
+ środowiskowe np.:
+<screen>SHELL=/bin/bash
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+MAILTO=jakis_user
+NICE=15</screen>
+ Pierwsza zmienna wskazuje powłokę (zamiast domyślnej
+ <filename>/bin/sh</filename>),
+ która ma być używana do wywoływania zadań, druga to ścieżka do
+ plików wykonywalnych. Trzecie pole to konto użytkownika do którego
+ będą wysyłane powiadomienia pocztą elektroniczną lub pełny
+ adres e-mail, ostatnia zmienna to priorytet wykonywanych
+ zadań (liczba nice).
+ </para>
+ </section>
+
+
+ <section id="uslugi_cron_data_i_czas">
+ <title>Format daty i czasu</title>
+ <para>
+ Sekcja {$użytkownik} i {$zadanie} nie wymagają komentarza więc
+ opisane zostanie jedynie pole {$data-czas}. Pole to składa się z
+ pięciu kolumn:
+ <itemizedlist>
+ <listitem>
+ <para>
+ 1-sza kolumna (zakres
+ <emphasis>0-59</emphasis>) oznacza
+ minuty.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ 2-ga kolumna (zakres
+ <emphasis>0-23</emphasis>) oznacza
+ godzinę.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ 3-cia kolumna (zakres
+ <emphasis>0-31</emphasis>) oznacza
+ dzień miesiąca.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ 4-ta kolumna (zakres
+ <emphasis>0-12</emphasis>) oznacza
+ miesiąc. (0 i 1 to styczeń)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ 5-ta kolumna (zakres
+ <emphasis>0-7</emphasis>) oznacza dzień
+ tygodnia (0 i 7 to niedziela)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ 6-ta kolumna określa komendę jaka
+ powinna zostać wykonana dla danego
+ wiersza.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Gwiazdka "*" oznacza cały zakres z możliwego przedziału.
+ Same zakresy w pierwszych pięciu kolumnach mogą być
+ reprezentowane w różny sposób. Więcej szczegółów na ten temat
+ dowiemy się wywołując polecenie <command>man 5 crontab</command>
+ </para>
+ <para>
+ Program <productname>vixie-cron</productname> posiada
+ także mało udokumentowany format wykonywania poleceń
+ </para>
+<screen>Nazwa Działanie
------ -------
@reboot Uruchom jeden raz przy starcie systemu
@yearly Uruchom jeden raz w roku, "0 0 1 1 *"
@@ -135,19 +162,19 @@
Przykład:
@reboot /usr/bin/rdate -s ntp.task.gda.pl</screen>
-</section>
+ </section>
-<section id="uslugi_cron_konfiguracja_systemowa">
- <title>Konfiguracja systemowa</title>
- <para>
- Główną konfigurację systemu tworzymy za pomocą naszego ulubionego
- edytora tekstu, poprzez modyfikację pliku <filename>/etc/cron.d/crontab</filename>.
- Jego zawartość będzie podobna do poniżej przedstawionego przykładu.
- </para>
- <screen>SHELL=/bin/sh
+ <section id="uslugi_cron_konfiguracja_systemowa">
+ <title>Tabele systemowe</title>
+ <para>
+ Główną konfigurację systemu tworzymy za pomocą naszego ulubionego
+ edytora tekstu, poprzez modyfikację pliku <filename>/etc/cron.d/crontab</filename>.
+ Jego zawartość będzie podobna do poniżej przedstawionego przykładu:
+ </para>
+ <screen>SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
-MAILTO=jakis_user
+MAILTO=admin w foobar.foo
NICE=15
# run-parts
@@ -158,82 +185,114 @@
0-59/10 * * * * root /bin/run-parts /etc/cron.10min
15 18 * * 1-5 root /bin/run-parts /etc/cron.gielda</screen>
- <para>
- Na samym początku mamy główne opcje demona: pierwsza to powłoka
- która ma być używana do wywoływania zadań, druga to ścieżka do
- plików wykonywalnych. Trzecie pole to konto użytkownika do którego
- będą wysyłane powiadomienia pocztą elektroniczną, ostatnia zmienna
- to priorytet wykonywanych zadań.
- </para>
- <para>
- Poniżej napisu <emphasis># run-parts</emphasis> umieszczone są
- konfiguracje zadań, pierwsze cztery linijki stanowią domyślną
- konfigurację demona. Run-parts jest to specjalne zadanie
- uruchamiające pliki wykonywalne w katalogu wskazanym w parametrze,
- pozwala to na łatwe dodawanie zadań dla demona. Opisy przykładów:
- </para>
- <para>
- Wykonanie poleceń zawartych w pliku (plikach) katalogu
- <filename>/etc/cron.hourly</filename> codziennie, co godzinę -
- zaczynając od pełnej pierwszej minuty (np. 02:01, 03:01 itd.):
- </para>
- <screen>01 * * * * /bin/run-parts /etc/cron.hourly</screen>
- <para>
- Wykonanie poleceń zawartch w pliku (plikach) katalogu
- <filename>/etc/cron.daily</filename> raz dzienie (o godz.
- 01:02):
- </para>
- <screen>02 1 * * * /bin/run-parts /etc/cron.daily</screen>
- <para>
- Wykonanie poleceń zawartych w pliku (plikach) katalogu
- <filename>/etc/cron.weekly</filename> raz w tygodniu (w
- niedziele o godz. 02:02):
- </para>
- <screen>02 2 * * 0 /bin/run-parts /etc/cron.weekly</screen>
- <para>
- Wykonanie poleceń zawartych w pliku (plikach) katalogu
- <filename>/etc/cron.monthly</filename> raz na miesiąc
- (w pierwszy dzień miesiąca o godz. 03:02):
- </para>
- <screen>02 3 1 * * /bin/run-parts /etc/cron.monthly</screen>
- <para>
- Wykonanie poleceń zawartych w pliku (plikach) katalogu
- <filename>/etc/cron.gielda</filename> raz dziennie w dni
- robocze (od poniedziałku do piątku o godz. 18:15):
- </para>
- <screen>15 18 * * 1-5 /bin/run-parts /etc/cron.gielda</screen>
- <para>
- Wykonanie poleceń zawartych w pliku (plikach) katalogu
- <filename>/etc/cron.10min</filename> co 10 minut (każdego
- dnia, zaczynając od pełnej godziny - czyli np. 01:00, 01:10,
- 01:20 itd.):
- </para>
- <screen>0-59/10 * * * * /bin/run-parts /etc/cron.10min</screen>
- <para>
- Jeżeli chcemy aby inni użytkownicy mogli korzystać z Crona
- musimy ich dopisać do pliku
- <filename>/etc/cron/cron.allow</filename>.
- </para>
-</section>
-
-
-<section id="uslugi_cron_konfiguracja_uzytkownika">
- <title>Konfiguracja użytkownika</title>
- <para>
- Użytkownicy powinni używać narzędzia <command>crontab</command>,
- program ten przyjmuje parametry określające akcję która ma być
- wykonana na tabeli. Parametr <emphasis>-l</emphasis> wyświetla
- listę zdefiniowanych zadań, parametr <emphasis>-e</emphasis> otworzy
- plik konfiguracji do edycji, zaś <emphasis>-r</emphasis> usunie całą
- zawartość konfiguracji użytkownika. Root ma dodatkowo do dyspozycji
- możliwość zarządzania zadaniami dowolnego użytkownika, w tym celu
- stosuje się opcję <emphasis>-u</emphasis> z podaną nazwą użytkownika.
- Wybranie opcji edycji tabeli spowoduje otworzenie edytora tekstu
- określonego zmienną środowiskową <emphasis>EDITOR</emphasis>,
- po skończonej edycji plik zostanie automatycznie poddany kontroli
- poprawności i zapisany jako
- <filename>/var/spool/cron/{login}</filename>.
- </para>
-</section>
+ <para>
+ Poniżej napisu <literal># run-parts</literal> umieszczone są
+ konfiguracje zadań, pierwsze cztery linijki stanowią domyślną
+ konfigurację demona. Program <command>run-parts</command>
+ służy do uruchamiania o jednej porze wszystkich programów
+ we wskazanym katalogu. Dzięki takim opcjom możemy dodawać
+ programy lub skrypty do odpowiednich katalogów bez konieczności
+ pisania regułek cron-a. Poniżej umieszczono opisy powyższych
+ przykładów:
+ </para>
+ <para>
+ Wykonanie poleceń zawartych w pliku (plikach) katalogu
+ <filename>/etc/cron.hourly</filename> codziennie, co godzinę -
+ zaczynając od pełnej pierwszej minuty (np. 02:01, 03:01 itd.):
+ </para>
+ <screen>01 * * * * /bin/run-parts /etc/cron.hourly</screen>
+ <para>
+ Wykonanie poleceń zawartch w pliku (plikach) katalogu
+ <filename>/etc/cron.daily</filename> raz dzienie (o godz.
+ 01:02):
+ </para>
+ <screen>02 1 * * * /bin/run-parts /etc/cron.daily</screen>
+ <para>
+ Wykonanie poleceń zawartych w pliku (plikach) katalogu
+ <filename>/etc/cron.weekly</filename> raz w tygodniu (w
+ niedziele o godz. 02:02):
+ </para>
+ <screen>02 2 * * 0 /bin/run-parts /etc/cron.weekly</screen>
+ <para>
+ Wykonanie poleceń zawartych w pliku (plikach) katalogu
+ <filename>/etc/cron.monthly</filename> raz na miesiąc
+ (w pierwszy dzień miesiąca o godz. 03:02):
+ </para>
+ <screen>02 3 1 * * /bin/run-parts /etc/cron.monthly</screen>
+ <para>
+ Wykonanie poleceń zawartych w pliku (plikach) katalogu
+ <filename>/etc/cron.gielda</filename> raz dziennie w dni
+ robocze (od poniedziałku do piątku o godz. 18:15):
+ </para>
+ <screen>15 18 * * 1-5 /bin/run-parts /etc/cron.gielda</screen>
+ <para>
+ Wykonanie poleceń zawartych w pliku (plikach) katalogu
+ <filename>/etc/cron.10min</filename> co 10 minut (każdego
+ dnia, zaczynając od pełnej godziny - czyli np. 01:00, 01:10,
+ 01:20 itd.):
+ </para>
+ <screen>0-59/10 * * * * /bin/run-parts /etc/cron.10min</screen>
+ </section>
+
+
+ <section id="uslugi_cron_konfiguracja_uzytkownika">
+ <title>Tabele użytkowników</title>
+ <para>
+ Domyślnie użytkownicy nie mogą tworzyć własnych zadań cron-a,
+ aby im na to zezwolić każdy nich musi zostać dopisany do pliku
+ <filename>/etc/cron/cron.allow</filename>.
+ </para>
+ <para>
+ Użytkownicy powinni używać narzędzia <command>crontab</command>,
+ program ten pozwala na bardzo łatwe zarządzanie tabelą użytkownika.
+ Przyjmuje parametry określające rodzaj działania, które ma
+ być wykonane na tabeli. Polecenie <command>crontab -l</command>
+ wyświetla listę zdefiniowanych zadań, wywołanie
+ <command>crontab -e</command> otworzy plik konfiguracji do edycji,
+ zaś <command>crontab -r</command> usunie całą zawartość konfiguracji
+ użytkownika.
+ </para>
+ <para>
+ Wybranie opcji edycji tabeli spowoduje otworzenie edytora tekstu
+ określonego zmienną środowiskową <emphasis>EDITOR</emphasis>, po
+ skończonej edycji plik zostanie automatycznie poddany kontroli
+ poprawności i zapisany jako
+ <filename>/var/spool/cron/{$login}</filename>.
+ Najczęściej popełniane błędy przez użytkowników to zły
+ format daty/czasu lub brak znaku nowej linii po ostatnim
+ wierszu.
+ </para>
+ <para>
+ Root ma dodatkowo do dyspozycji możliwość zarządzania zadaniami
+ dowolnego użytkownika, w tym celu stosuje się opcję
+ <command>-u</command> z podaną nazwą użytkownika.
+ </para>
+ </section>
+
+
+ <section id="uslugi_cron_konfiguracja_komunikaty">
+ <title>Komunikaty cron-a</title>
+ <para>
+ Cron rejestruje wszystkie swoje prace do pliku
+ <filename>/var/log/cron</filename> za pośrednictwem demona
+ <productname>syslogd</productname>,
+ dodatkowo można wskazać adres e-mail, na który
+ mają docierać informacje o wystąpieniu błędów w wykonywaniu
+ zadań. Jeśli nie zdefiniuje zmiennej <literal>MAILTO</literal>
+ w tabeli to poczta zostanie wysłana na lokalne konto
+ właściciela tej tabeli.
+ Poczta elektroniczna jest jedyną formą informowania
+ zwykłych użytkowników o ewentualnych błędach zadań, gdyż
+ nie mają oni dostępu do logów.
+ </para>
+ <para>
+ Wysyłanie poczty elektronicznej zarówno do użytkowników
+ lokalnych jak i zewnętrznych będzie wymagało instalacji
+ lokalnego serwera poczty MTA. Może to być niemal dowolny
+ demon pocztowy, np.: Exim (opis w
+ <xref linkend="uslugi_exim" />) lub Postfix (opis w
+ <xref linkend="uslugi_postfix" />).
+ </para>
+ </section>
</section>
Więcej informacji o liście dyskusyjnej pld-doc