GNU/Linux >> Znalost Linux >  >> Linux

Cron vs Anacron:Jak nastavit Anacron na Linuxu (s příkladem)

Anacron je cron pro stolní počítače a notebooky.

Anacron neočekává, že systém bude běžet 24 x 7 jako server.

Pokud chcete, aby se úloha na pozadí spouštěla ​​automaticky na počítači, který neběží 24 x 7, měli byste použít anacron.

Pokud máte například zálohovací skript naplánovaný každý den ve 23:00 jako běžnou úlohu cron a pokud váš notebook není v 23:00, vaše úloha zálohování se neprovede.

Pokud však máte stejnou úlohu naplánovanou v anacronu, můžete si být jisti, že bude provedena, jakmile se notebook znovu zapne.

Formát Anacrontab

Stejně jako cron má /etc/crontab, anacron má /etc/anacrontab.

/etc/anacrontab má úlohy anacronu uvedené v následujícím formátu.

period   delay   job-identifier   command

Pole 1 je období opakování: Toto je číselná hodnota, která určuje počet dní.

  • 1 – denně
  • 7 – týdně
  • 30 – měsíčně
  • N – Může to být jakákoli číselná hodnota. N označuje počet dní

Poznámka:„@monthly“ můžete také použít pro úlohu, kterou je třeba provádět měsíčně.

Pole 2 je Zpoždění: Udává zpoždění v minutách. tj. X počet minut, které by měl anacron čekat před provedením úlohy po spuštění počítače.

Pole 3 je identifikátor úlohy: Je to název souboru časového razítka úlohy. Mělo by být jedinečné pro každou práci. Bude k dispozici jako soubor v adresáři /var/spool/anacron. Tento soubor bude obsahovat jeden řádek, který označuje poslední čas, kdy byla tato úloha provedena.

# ls -1 /var/spool/anacron/
test.daily
cron.daily
cron.monthly
cron.weekly

# cat /var/spool/anacron/test.daily
20110507

Pole 4 je příkaz: Příkazový nebo shellový skript, který je třeba provést.

Stejně jako skripty shellu začínají komentáře v souboru anacrontab znakem #

Poznámka: Formát souboru /etc/crontab najdete v našem článku Linux Crontab:15 Awesome Cron Job Example.

Příklad Anacronu

Následující příklad spustí skript /home/sathiya/backup.sh jednou za 7 dní.

V den, kdy se má úloha backup.sh provést, pokud je systém z nějakého důvodu mimo provoz, anacron spustí skript backup.sh 15 minut poté, co se systém znovu spustí (aniž by musel čekat dalších 7 dní).

# cat /etc/anacrontab
7       15      test.daily      /bin/sh /home/sathiya/backup.sh

START_HOURS_RANGE a RANDOM_DELAY

Výše uvedený příklad ukazuje, že skript backup.sh by se měl spouštět každý den se zpožděním 15 minut. tj. když byl notebook spuštěn, spusťte jej až po 15 minutách.

Co se stane, když se notebook nebo stolní počítač nevypne? Kdy bude práce provedena? To je určeno proměnnou prostředí START_HOURS_RANGE v souboru /etc/anacrontab.

Ve výchozím nastavení je toto v souboru nastaveno na 3-22. Označuje časový rozsah od 3:00 do 22:00

# grep START /etc/anacrontab
START_HOURS_RANGE=3-22

Kromě uživatelem definovaného zpoždění zadaného ve 2. poli souboru /etc/anacrontab, anacron také náhodně přidá x počet minut. X je definováno proměnnou RANDOM_DELAY v souboru /etc/anacrontab.

Ve výchozím nastavení je toto v souboru nastaveno na 45. To znamená, že anacron přidá x minut (náhodně vybraných z 0 a 45) a přidá to k uživatelem definovanému zpoždění.

# grep RANDOM /etc/anacrontab
RANDOM_DELAY=45

Cron vs Anacron

Cron a anacron mají své výhody a nevýhody. V závislosti na vašich požadavcích použijte jeden z nich.

Cron Anacron
Minimální podrobnost je minuta (tj. provádění úloh lze naplánovat každou minutu) Minimální podrobnost je pouze ve dnech
Cron úlohu může naplánovat každý normální uživatel (pokud není omezen superuživatelem) Anacron může používat pouze super uživatel (ale existují řešení, jak jej zpřístupnit normálním uživatelům)
Cron očekává, že systém poběží 24 x 7. Pokud je naplánována úloha a systém je během této doby mimo provoz, úloha se nespustí. Anacron neočekává, že systém bude běžet 24 x 7. Pokud je naplánována úloha a systém je během této doby mimo provoz, spustí úlohy, když se systém znovu spustí.
Ideální pro servery Ideální pro stolní počítače a notebooky
Použijte cron, když má být úloha provedena v určitou hodinu a minutu Použijte anacron, když je třeba provést úlohu bez ohledu na hodinu a minutu

Linux
  1. Jak používám cron v Linuxu

  2. Jak používat Cron Job Format k plánování úloh v Linuxu

  3. Jak nastavit Rsync s SSH na UNIX / Linux (rsync bez hesla)

  1. Jak vytvářet vlákna v Linuxu (pomocí ukázkového programu C)

  2. Jak naplánovat úlohy pomocí příkazu „at“ v systému Linux

  3. Jak nastavit úlohu CRON, aby se spouštěla ​​každých 10 sekund v Linuxu?

  1. Jak nastavit Cron Job v Linuxu

  2. Jak nainstalovat a nastavit ukázkovou službu s xinetd na RHEL 8 / CentOS 8 Linux

  3. Jak nastavit vysoce dostupný NGINX s KeepAlived v Linuxu