Cron Vs Anacron: Cum să programați joburi folosind Anacron pe Linux
În acest articol, vom explica cron și anacron și, de asemenea, vă vom arăta cum să configurați anacron pe Linux. Vom acoperi, de asemenea, o comparație a acestor două utilități.
Pentru a programa o sarcină la o oră dată sau ulterioară, puteți utiliza comenzile „la” sau „batch” și pentru a configura comenzile să ruleze în mod repetat, puteți utiliza < facilitățicron și anacron.
Cron – este un demon folosit pentru a rula sarcini programate, cum ar fi copii de rezervă ale sistemului, actualizări și multe altele. Este potrivit pentru rularea sarcinilor programate pe mașini care vor rula continuu 24 de ore pe zi, 7 zile pe zi, cum ar fi serverele.
Comenzile/sarcinile sunt scriptate în joburi cron care sunt programate în fișierele crontab. Fișierul crontab de sistem implicit este /etc/crontab, dar fiecare utilizator își poate crea și propriul fișier crontab care poate lansa comenzi la momentele pe care utilizatorul le definește.
Pentru a crea un fișier crontab personal, tastați pur și simplu următoarele:
crontab -e
Cum se configurează Anacron în Linux
Anacron este folosit pentru a rula comenzi periodic cu o frecvență definită în zile. Funcționează puțin diferit de cron; presupune că o mașină nu va fi pornită tot timpul.
Este potrivit pentru a rula joburi programate zilnice, săptămânale și lunare, rulate în mod normal de cron, pe mașini care nu vor rula 24-7, cum ar fi laptopurile și computerele desktop.
Presupunând că aveți o sarcină programată (cum ar fi un script de rezervă) care să fie executată folosind cron la fiecare miezul nopții, eventual când dormiți, iar desktopul/laptop-ul este oprit până la acel moment. Scriptul dvs. de rezervă nu va fi executat.
Cu toate acestea, dacă utilizați anacron, puteți fi sigur că data viitoare când porniți din nou desktopul/laptop-ul, scriptul de rezervă va fi executat.
Cum funcționează Anacron în Linux
Lucrările anacron sunt listate în /etc/anacrontab și lucrările pot fi programate folosind formatul de mai jos (comentariile din fișierul anacrontab trebuie să înceapă cu #).
period delay job-identifier command
Din formatul de mai sus:
- perioada – aceasta este frecvența de execuție a sarcinii specificată în zile sau ca @zilnic, @săptămânal sau @lunar pentru o dată pe zi, săptămână sau lună. Puteți folosi și numere: 1 – zilnic, 7 – săptămânal, 30 – lunar și N – număr de zile.
- întârziere – este numărul de minute de așteptat înainte de a executa o lucrare.
- job-id – este numele distinctiv al jobului scris în fișierele jurnal.
Pentru a vizualiza exemple de fișiere, tastați:
ls -l /var/spool/anacron/
total 12
-rw------- 1 root root 9 Jun 1 10:25 cron.daily
-rw------- 1 root root 9 May 27 11:01 cron.monthly
-rw------- 1 root root 9 May 30 10:28 cron.weekly
- comanda – este comanda sau scriptul shell care trebuie executat.
Iată ce se întâmplă practic:
- Anacron va verifica dacă o lucrare a fost executată în perioada specificată în câmpul perioadei. Dacă nu, execută comanda specificată în câmpul de comandă după ce a așteptat numărul de minute specificat în câmpul de întârziere.
- Odată ce lucrarea a fost executată, aceasta înregistrează data într-un fișier de marcaj temporal în directorul /var/spool/anacron cu numele specificat în câmpul ID-ul sarcinii (nume fișier marcaj temporal).
Să ne uităm acum la un exemplu. Aceasta va rula zilnic scriptul /home/aaronkilik/bin/backup.sh:
@daily 10 example.daily /bin/bash /home/aaronkilik/bin/backup.sh
Dacă mașina este oprită când se așteaptă să ruleze jobul backup.sh, anacron o va rula la 10 minute după ce mașina este pornită, fără a fi nevoie să aștepte încă 7 zile.
Există două variabile importante în fișierul anacrontab pe care ar trebui să le înțelegeți:
- START_HOURS_RANGE – aceasta setează intervalul de timp în care vor fi începute lucrările (adică executați lucrări numai în următoarele ore).
- RANDOM_DELAY – aceasta definește întârzierea maximă aleatorie adăugată la întârzierea definită de utilizator a unei lucrări (în mod implicit este 45).
Acesta este modul în care ar arăta fișierul anacrontab.
/etc/anacrontab: configuration file for anacron
See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root
These replace cron's entries
1 5 cron.daily run-parts --report /etc/cron.daily
7 10 cron.weekly run-parts --report /etc/cron.weekly
@monthly 15 cron.monthly run-parts --report /etc/cron.monthly
@daily 10 example.daily /bin/bash /home/aaronkilik/bin/backup.sh
Următoarea este o comparație între cron și anacron pentru a vă ajuta să înțelegeți când să utilizați oricare dintre ele.
- It’s a daemon
Nu este un demon
- Appropriate for server machines
Potrivit pentru computere desktop/laptop
- Enables you to run scheduled jobs every minute
Vă permite să executați numai lucrări programate zilnic
- Doesn’t executed a scheduled job when the machine if off
Dacă mașina este oprită atunci când este programată o lucrare, va executa o lucrare programată când mașina este pornită data viitoare
- Can be used by both normal users and root
Poate fi folosit numai de root, dacă nu este altfel (activat pentru utilizatorii normali cu configurații specifice)
Diferența majoră dintre cron și anacron este că cron funcționează eficient pe mașinile care vor rula continuu în timp ce anacron este destinat pentru mașinile care vor fi oprite într-o zi sau o săptămână.
Dacă știți orice altă modalitate, împărtășiți-ne folosind formularul de comentarii de mai jos.