Co je anacron a jak se liší od cronu?
Anacron se používá k pravidelnému provádění příkazů s frekvencí zadanou ve dnech. Na rozdíl od cron nepředpokládá, že stroj běží nepřetržitě. Lze jej tedy použít na strojích, které neběží 24 hodin denně, k řízení běžných úloh, jako jsou denní, týdenní a měsíční úlohy. Anacron se pokusí spustit naplánované úlohy tak blízko, jak to doba provozu systému dovolí.
konfigurační soubor anacronu
/etc/anacrontab je konfigurační soubor anacronu. Níže je ukázkový, neupravený soubor anacron:
# cat /etc/anacrontab # /etc/anacrontab: configuration file for anacron # See anacron(8) and anacrontab(5) for details. 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=3-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
Zde:
1. období ve dnech :určuje frekvenci provádění úlohy ve dnech. Tato proměnná může být reprezentována celým číslem nebo makrem (@daily, @weekly, @monthly), kde @daily označuje stejnou hodnotu jako celé číslo 1, @weekly totéž jako 7 a @monthly určuje, že je úloha spuštěna. jednou za měsíc, nezávisle na délce měsíce.
2. zpoždění v minutách :v případě potřeby určuje počet minut, po které anacron čeká před provedením úlohy. Tato proměnná je reprezentována celým číslem, kde 0 znamená žádné zpoždění.
3. job-identifikátor :Určuje jedinečný název úlohy, který se používá v souborech protokolu.
4. příkaz :určuje příkaz, který se má provést. Příkaz může být buď příkaz jako ps -ef>> /tmp/processes, nebo příkaz pro spuštění vlastního skriptu.
3 řádky na konci konfiguračních souborů jsou systémem definované úlohy cron.
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
Zbytek proměnných je vysvětlen na příkladu níže.
Příklad konfigurace anacronu
Podívejme se na příklad konfigurace anacronu. Vytváříme úlohu anacronu pro spouštění skriptu s názvem „daily_job.sh“ denně s 35minutovým zpožděním po spuštění systému.
# cat /etc/anacrontab RANDOM_DELAY=30 START_HOURS_RANGE=10-18 1 35 daily_job sh /var/tmp/daily_job.sh
Pokud je systém spuštěn, bude úloha probíhat podle START_HOURS_RANGE který je definován v souboru /etc/anacrontab. Proměnná START_HOURS_RANGE definuje rozsah hodin, ve kterých může naplánovaná úloha běžet. V našem případě je to 10:00. do 18:00 (10-18)
# grep -i START_HOURS_RANGE /etc/anacrontab START_HOURS_RANGE=10-18
RANDOM_DELAY proměnná označuje maximální počet minut, které budou přidány k proměnné zpoždění v minutách, která je určena pro každou úlohu. RANDOM_DELAY nastavené na 30 by tedy náhodně přidalo mezi 0 a 30 minutami zpoždění v minutách pro každou úlohu v této konkrétní anacrontab. Při nastavení na 0 se nepřidává žádné náhodné zpoždění.
# grep -i RANDOM_DELAY /etc/anacrontab RANDOM_DELAY=30