U prethodni članak Pričao sam ti o cronu, sistemskom programu koji automatski pokreće zadatke u određeno vrijeme. Sada ćemo vidjeti kako automatizirati zadatke pomoću Anacrona. Anacron nam omogućava da prevaziđemo jednu od Cronovih slabosti. Ako je računar isključen u vrijeme kada je zadatak trebao biti izvršen, on se neće ponovo izvršiti sve dok ne dođe sljedeće doba godine i računar ne bude uključen.
U slučaju Anacrona, Kada se računar ponovo uključi, on izvršava zadatke koji su bili na čekanju.
Kako automatizirati zadatke pomoću Anacrona
Kada se računar pokrene, Anacron provjerava kada je data instrukcija posljednji put izvršena i koliko često je rečeno da se izvrši. Baš kao i kod Crona, lista obaveza se sprema u tekstualnu datoteku pod nazivom prilično neoriginalni anacrontab. Ali, postoji jedna važna razlika, U ovom slučaju, datum se postavlja određivanjem dana, kašnjenja u minutama, identifikatora zadatka i naredbe koja se izvršava.
Anacron provjerava, za svaki zadatak, da li je izvršen u roku od određenog broja dana. Taj broj dana je period određen za taj posao. Ako se nije pokrenuo, Anacron čeka potreban broj minuta i zatim to čini. Zatim zabilježite datum, koji služi kao pokazatelj kada ga ponovo pokrenuti.
Anacron možemo pronaći po imenu ili u cronie paketu u glavnim distribucijama.
Da bismo ga pokrenuli, moramo navesti sljedeće parametre:
-F: Izvršenje zadatka čak i ako nije na naznačeni datum.
-ili: Mijenja datum poslova na trenutni dan, ali ih ne izvršava.
-s: Označava da se zadatak izvršava kada se prethodni završi.
-n: To je kao korištenje parametara -fy
-q: Ako se koristi sa -d, sprečava prikaz poruka o greškama.
-t: Kaže Anacronu gdje da pronađe listu zadataka.
-T: Provjerava postavke liste zadataka i po potrebi prikazuje poruku o grešci.
-S Određuje direktorij u kojem se pohranjuju vremenske oznake.
U Anacrontab datoteku moramo dodati sljedeće parametre
SHELL=/bin/bash: Određuje da se Bash treba koristiti kao interpreter komandi.
POŠTANSKA ADRESA= Nakon znaka jednakosti, navodimo adresu e-pošte na koju ćemo dobiti izvještaj o grešci. Iako u desktop distribucijama to nije potrebno.
PUTANJA=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin: Ovo nam omogućava da ne moramo dodavati rutu svakom zadatku.
Sintaksa za Anacrontab zadatak je naredba period delay job id gdje je:
Período: \ t To je učestalost kojom se posao mora obavljati. Može se označiti kao period (@dnevno, @sedmično ili @mesečno za dan, nedelju ili mesec) ili brojevima (1 za dan, 7 za nedelju, 30 za mesec i bilo koji broj za bilo koji period dana.
Kašnjenje: Ovo je vrijeme čekanja prije početka. Izražava se u minutama
ID posla: To je naziv koji se dodjeljuje zadatku kako bi se razlikovao od ostalih
Naredba: Ovo je naredba koju anacron mora pokrenuti u određeno vrijeme.
Također moramo kreirati direktorij za pokretanje različitih zadataka.
mkdir -p ~/.local/etc/anacrontab: ~/.local/etc/cron.daily ~/.local/etc/cron.weekly ~/.local/etc/cron.daily ~/.var/spool/anacron
Ovo kreira direktorije u koje će se čuvati dnevni, sedmični i mjesečni skripti za izvršavanje i izvještaj o posljednjem izvršavanju anakrona.
Da biste mu rekli da koristi ove mape:
anacron -fn -t ~/.local/etc/anacrontab -S ~/.var/spool/anacron
Konfiguracijsku datoteku uređujemo iz terminala
nano ~/.local/etc/anacrontab
Dodajemo ove linije:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Mogu se konfigurirati još dvije varijable
START_HOURS_RANGE: Da bi se naznačilo da poslovi trebaju započeti samo unutar određenog vremenskog okvira.
RANDOM_DELAY: Postavlja maksimalno nasumično kašnjenje
Ovim završavamo naš kratki pregled dva korisna alata komandne linije za automatizaciju zadataka na našim računarima. U kasnijim člancima vidjet ćemo da postoje grafičke aplikacije koje nam također omogućavaju da uradimo isto.