V predchádzajúci článok Hovoril som ti o crone, systémovom programe, ktorý automaticky spúšťa úlohy v určitom čase. Teraz si ukážeme, ako automatizovať úlohy pomocou Anacronu. Anacron nám umožňuje prekonať jednu zo slabín Cronu. Ak je počítač v čase, keď sa mala úloha vykonať, vypnutý, nevykoná sa znova, kým nenastane ďalšie ročné obdobie a počítač nebude zapnutý.
V prípade Anacronu, Keď sa počítač znova zapne, vykoná úlohy, ktoré boli ponechané čakajúce.
Ako automatizovať úlohy pomocou Anacronu
Keď sa počítač spustí, Anacron vyhľadá, kedy bola daná inštrukcia naposledy vykonaná a ako často jej bolo povedané, že sa má vykonať. Rovnako ako v prípade Cronu, zoznam úloh sa ukladá do textového súboru s názvom anacrontab, ktorý sa volá pomerne neoriginálny. Ale je tu jeden dôležitý rozdiel, V tomto prípade sa dátum nastaví stanovením dňa, oneskorenia v minútach, identifikátora úlohy a príkazu, ktorý sa má vykonať.
Anacron pri každej úlohe kontroluje, či bola vykonaná v rámci určitého počtu dní. Tento počet dní predstavuje obdobie určené pre danú prácu. Ak sa nespustil, Anacron počká požadovaný počet minút a potom sa spustí. Potom si zaznamenajte dátum, ktorý slúži ako indikátor, kedy ho spustiť znova.
Anacron nájdeme pod názvom alebo v balíku cronie vo významných distribúciách.
Pre jeho spustenie musíme zadať nasledujúce parametre:
-F: Vykonanie úlohy, aj keď nie je v uvedený dátum.
-alebo: Zmení dátum úloh na aktuálny deň, ale nevykoná ich.
-s: Označuje, že úloha sa vykoná po dokončení predchádzajúcej úlohy.
-n: Je to ako použitie parametrov -fy
-q: Ak sa použije s parametrom -d, zabráni sa zobrazovaniu chybových hlásení.
-t: Povie Anacronu, kde má nájsť zoznam úloh.
-T: Skontroluje nastavenia zoznamu úloh a v prípade potreby zobrazí chybové hlásenie.
-S Určuje adresár, v ktorom sú uložené časové pečiatky.
V súbore Anacrontab musíme pridať nasledujúce parametre
SHELL=/bin/bash: Určuje, že Bash sa má použiť ako interpret príkazov.
POŠTOVÉ ODOSLANÍ= Za znamienkom rovnosti uvádzame e-mailovú adresu, na ktorú nám má byť zaslaná správa o chybe. Hoci v desktopových distribúciách to nie je potrebné.
CESTA=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin: Vďaka tomu nemusíme ku každej úlohe pridávať trasu.
Syntax úlohy Anacrontab je príkaz period delay job id, kde:
Obdobie: Je to frekvencia, s akou sa musí práca vykonávať. Môže byť označený ako obdobie (@denne, @týždenne alebo @mesačne pre deň, týždeň alebo mesiac) alebo číslami (1 pre deň, 7 pre týždeň, 30 pre mesiac a ľubovoľné číslo pre ľubovoľné obdobie dní).
Oneskorenie: Toto je čas, ktorý treba počkať pred spustením. Vyjadruje sa v minútach
ID úlohy: Je to názov priradený úlohe, aby sa odlíšila od ostatných
Príkaz: Toto je príkaz, ktorý musí anacron spustiť v zadanom čase.
Taktiež potrebujeme vytvoriť adresár na spúšťanie rôznych úloh.
mkdir -p ~/.local/etc/anacrontab: ~/.local/etc/cron.daily ~/.local/etc/cron.weekly ~/.local/etc/cron.daily ~/.var/spool/anacron
Týmto sa vytvoria adresáre, kde sa uložia denné, týždenné a mesačné skripty vykonávania a správa o poslednom spustení anacronu.
Ak chcete, aby používal tieto priečinky:
anacron -fn -t ~/.local/etc/anacrontab -S ~/.var/spool/anacron
Konfiguračný súbor upravujeme z terminálu
nano ~/.local/etc/anacrontab
Pridávame tieto riadky:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Je možné nakonfigurovať dve ďalšie premenné
START_HOURS_RANGE: Označuje, že úlohy by sa mali začať iba v určitom časovom rámci.
RANDOM_DELAY: Nastavuje maximálne náhodné oneskorenie
Týmto uzatvárame náš stručný prehľad dvoch užitočných nástrojov príkazového riadka na automatizáciu úloh na našich počítačoch. V neskorších článkoch uvidíme, že existujú aj grafické aplikácie, ktoré nám umožňujú robiť to isté.