Zadania cron w CentOS/RHEL 6.x
Napisał: Patryk Krawaczyński
11/10/2011 w Administracja Brak komentarzy. (artykuł nr 330, ilość słów: 357)
W
szóstej wersji CentOS’a / Red Hat’a został zmieniony system zarządzania zadaniami za pomocą daemona cron. Dla nieświadomych – za pomocą programu cron jesteśmy w stanie m.in. rotować dzienniki systemowe, indeksować pliki w systemie, czy uruchamiać skrypty o określonych porach (najczęściej w takich, w których serwer nie jest zajęty wykonywaniem “ważniejszych” rzeczy). A co zostało zmienione w kolejnym wydaniu tych systemów?
W poprzedniej 5’tej wersji za zarządzanie zadaniami cron’a w głównej mierze był odpowiedzialny plik /etc/crontab
. Niestety w tej wersji plik ten jest pusty. Za to w standardowym wydaniu zainstalowany został pakiet anacron, który przejął zarządzanie zadaniami systemowymi. Problem w tym, że anacron został w pierwotnym zamyśle stworzony dla systemów, które nie są uruchomione 24/7 – czyli o przeznaczeniu desktop lub workstation. Nie do końca jest jasne dlaczego Red Hat wybrał ten program dla systemu klasy enterprise z przeznaczeniem głównie dla serwerów działających przez całe lata.
W dodatku anacron nie posiada własnego daemona – i tak wywoływany przez standardowy crond – np. przez plik 0anacron
umieszczony w /etc/cron.hourly
. Cały anacron jest konfigurowany przez plik /etc/anacrontab
– wykonuje on zadania umieszczone w ścieżkach /etc/cron.daily | weekly | monthly
:
SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # the maximal random delay added to the base delay of the jobs RANDOM_DELAY=45 # the jobs will be started during the following hours only START_HOURS_RANGE=20-22 #period in days delay in minutes job-identifier command 1 5 cron.daily nice run-parts /etc/cron.daily 7 25 cron.weekly nice run-parts /etc/cron.weekly @monthly 45 cron.monthly nice run-parts /etc/cron.monthly
Jeśli chcemy wrócić do starej szkoły i ponownie ujrzeć plik /etc/cron.d/dailyjobs
wystarczy zainstalować pakiet pozbawiony anacron:
yum install cronie-noanacron
Oraz usunąć standardowy pakiet:
yum remove cronie-anacron
Na końcu należy zadbać o uruchomienie usługi i dodaniu jej do odpowiednich runleveli systemu:
service crond start chkconfig crond on
Więcej informacji: anac(h)ronistic cron