CRON(8) Administracja systemem CRON(8) NAZWA cron - demon do wywolywania odlozonych polecen SKLADNIA crond [-c | -h | -i | -n | -p | -P | -s | -m] crond -x [ext,sch,proc,pars,load,misc,test,bit] crond -V OPIS Gdy uzywa sie klasycznych skryptow sysvinit cron jest uruchamiany z /etc/rc.d/init.d lub /etc/init.d. Jesli wlaczono systemd, plik jednostki jest instalowany do /lib/systemd/system/crond.service a demon jest uruchamiany poleceniem systemctl start crond.service. Program powraca do powloki natychmiast, zatem nie ma koniecznosci poprzedzania go parametrem "&" Cron przeszukuje katalog /var/spool/cron szukajac plikow crontab nazwanych tak jak konta w pliku /etc/passwd. Odnalezione pliki crontab sa ladowane do pamieci. Cron szuka rowniez /etc/anacrontab i dowolnych plikow w katalogu /etc/cron.d, ktore maja inny format (zob. crontab(5)). Cron sprawdza wszystkie zachowane pliki crontab okreslajac, czy jakiekolwiek z zadan nie musi byc uruchomione w biezacej minucie. Przy wykonywaniu polecen ich wyjscie jest wysylane poczta elektroniczna do wlasciciela pliku crontab (lub uzytkownika podanego w zmiennej srodowiskowej MAILTO, jesli taki istnieje). Wyniki polecen moga byc rowniez wysylane do dziennika systemowego za pomoca opcji -s. Istnieja dwa sposoby, w jakie sprawdzane sa pliki crontab. Pierwszym jest sprawdzenie czasu modyfikacji pliku, drugi wykorzystuje obsluge inotify. Uzycie inotify jest odnotowywane w dzienniku /var/log/cron po uruchomieniu demona. Obsluga inotify sprawdza wszelkie zmiany we wszystkich plikach crontab i uzyskuje dostep do dysku tylko gdy odnotowana jest zmiana. Przy uzywaniu opcji czasu modyfikacji (modtime) cron sprawdza czasy modyfikacji plikow crontab co minute i przeladowuje pliki crontab ktore ulegly zmianie. Nie ma potrzeby ponownego uruchamiania crona po modyfikacji plikow crontab. Opcja czasu modyfikacji jest rowniez uzywana gdy nie mozna zainicjowac inotify. Cron sprawdza nastepujace pliki i katalogi: /etc/crontab systemowy plik crontab. Obecnie jest on domyslnie pusty. Pierwotnie byl uzywany do uruchamiania zadan codziennych, cotygodniowych i comiesiecznych. Aktualnie sa one domyslnie wykonywane przez anacron, ktory odczytuje plik konfiguracyjny /etc/anacrontab. Wiecej szczegolow znajduje sie w podreczniku systemowym anacrontab(5). /etc/cron.d/ katalog zawierajacy systemowe zadania crona przechowywane dla roznych uzytkownikow. /var/spool/cron katalog zawierajacy zadania crona uzytkownikow, utworzone poleceniem crontab. Prosze zauwazyc, ze polecenie crontab(1) aktualizuje czas modyfikacji katalogu spool przy kazdej zmianie pliku crontab. Obsluga czasu letniego i inne zmiany czasu Lokalne zmiany czasu mniejsze niz trzy godziny, takie jak spowodowane zmiana czasu letniego, sa obslugiwane w specjalny sposob. Dotyczy to tylko zadan ktore uruchamiaja sie o okreslonym czasie i zadan o granularnosci wiekszej niz jedna godzina. Zadania odbywajace sie czesciej sa zlecane w zwykly sposob. Jesli czas zostal przesuniety o godzine do przodu, zadania ktore uruchomilyby sie w pomijanej godzinie, zostana wykonane natychmiast. Jesli czas zostal przesuniety godzine do tylu, unikane jest wykonywanie tych samych zadan dwukrotnie. Zmiany zegara o wiecej niz 3 godziny, sa uwazane za poprawki zegara lub strefy czasowej i nowy czas jest uzywany od razu. Do plikow crontab mozna uzywac roznych stref czasowych. Wiecej informacji w podreczniku systemowym crontab(5). Kontrola dostepu PAM Cron obsluguje kontrole dostepu za pomoca PAM, jesli jest zainstalowany. Wiecej informacji w podreczniku pam(8). Plik konfiguracyjny PAM crond jest zainstalowany w /etc/pam.d/crond. Demon laduje srodowisko PAM z modulu pam_env. Mozna to przeslonic definiujac wlasciwe ustawienie w odpowiednim pliku crontab. OPCJE -h Wyswietla komunikat pomocy i wychodzi. -i Wylacza obsluge inotify. -m Opcja pozwala podac polecenie powloki uzywane do wysylania poczty przez cron, zamiast domyslnego sendmail(8). Polecenie to musi akceptowac w pelni sformatowana wiadomosc poczty elektronicznej (z naglowkami) na swoim standardowym wejsciu i wyslac ja jako wiadomosc poczty elektronicznej do adresatow podanych w naglowku wiadomosci. Podanie jako argumentu ciagu off (tzn. crond -m off) wylaczy wysylanie wiadomosci. -n Nakazuje demonowi dzialanie w tle. Przydatne przy uruchamianiu z systemu init. Przy korzystaniu z tej opcji konieczna bedzie zmiana ustawien pam: /etc/pam.d/crond nie moze wlaczac modulu pam_loginuid.so. -f Rownowazne -n, dla zachowania spojnosci z innymi implementacjami crond. -p Pozwala cronowi akceptowac tabele crona dowolnego uzytkownika. -P Nie ustawia PATH, lecz dziedziczy ja ze srodowiska. -c Opcja ta wlacza obsluge klastrow, zgodnie z opisem ponizej. -s Opcja ta nakazuje cronowi wysylanie wyniku zadan do dziennika systemowego, za pomoca syslog(3). Jest to przydatne, gdy dany system nie ma zainstalowanego sendmail(8) lub gdy poczta jest wylaczona. -x Opcja pozwala ustawic flagi debugowania. -V Wyswietla informacje o wersji i konczy dzialanie. SYGNALY Gdy otrzymany jest SIGHUP, demon cron zakonczy zamknie i otworzy ponownie swoj plik dziennika. Jest to przydatne w skryptach, ktore rotuja stare pliki dziennikow. Oczywiscie nie ma to znaczenia, jesli zbudowano Cron do uzywania syslog(3). OBSLUGA KLASTROW W niniejszej wersji Cron mozna korzystac z montowanego sieciowo, wspolnego /var/spool/cron dla klastra komputerow i okreslic, ze w danym czasie jedynie jeden z nich powinien uruchamiac zadania crontab z tego katalogu. W tym celu nalezy uruchomic Cron z opcja -c, natomiast plik /var/spool/cron/.cron.hostname powinien zawierac jedynie pojedynczy wiersz z nazwa tego komputera z klastra, ktory ma wykonywac zadania. Jesli plik ten nie istnieje lub nazwa komputera nie jest zwracana przez gethostname(2), to wszystkie pliki crontab w tym katalogu sa ignorowane. Nie ma to wplywu na zadania crona podane w pliku /etc/crontab lub w plikach w katalogu /etc/cron.d. Te pliki sa wykonywane zawsze i sa uwazane za przeznaczone do danego komputera. Zamiast bezposrednio edytowac /var/spool/cron/.cron.hostname, prosze korzystac z opcji -n crontab(1) do okreslenia komputera. Nalezy sie upewnic, ze wszystkie komputery w klastrze oraz serwer plikow, z ktorego montowany jest wspolny katalog crontab, maja zsynchronizowane zegary, np. za pomoca ntpd(8), w przeciwnym wypadku wyniki moga byc nieprzewidywalne. Uzywanie wspolnego klastra automatycznie wylacza obsluge inotify, poniewaz inotify nie dziala dobrze na wspolnych systemach plikow montowanych sieciowo. ZASTRZEZENIA Wszystkie pliki crontab musza byc zwyklymi plikami lub dowiazaniami symbolicznymi do zwyklych plikow, nie moga byc one wykonywalne lub zapisywalne dla kogokolwiek poza wlascicielem. Wymaganie to mozna zniesc opcja -p w wierszu polecenia crond. Jesli korzysta sie z obslugi inotify, zmiany w dowiazanych plikach crontab nie sa automatycznie dostrzegane przez demona cron. Do przeladowania plikow crontab musi on wowczas otrzymac sygnal SIGHUP. Jest to ograniczenie API inotify. Jesli nie zainstalowano sendmail, wyjscie bedzie wysylane do dziennika systemowego zamiast poczta. ZOBACZ TAKZE crontab(1), crontab(5), inotify(7), pam(8) AUTOR Paul Vixie Marcela Maslanova Colin Dean Tomas Mraz TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Przemek Borys i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . cronie 26 wrzesnia 2013 r. CRON(8)