Cron Vs Anacron: Kako razporediti delovna mesta z uporabo Anacrona v Linuxu


V tem članku bomo razložili cron in anacron ter tudi navodila za nastavitev anacrona v Linuxu. Zajeli bomo tudi primerjavo teh dveh pripomočkov.

Če želite razporediti nalogo za določen ali poznejši čas, lahko uporabite ukaze 'at' ali 'batch' in za nastavitev ukazov za večkratno izvajanje lahko uporabite orodja cron in anacron.

Cron - je demon, ki se uporablja za izvajanje načrtovanih nalog, kot so varnostne kopije sistema, posodobitve in še veliko več. Primeren je za izvajanje načrtovanih opravil na strojih, ki bodo delovali neprekinjeno 24x7, na primer na strežnikih.

Ukazi/naloge se skriptirajo v opravila cron, ki so razporejena v datotekah crontab. Privzeta sistemska datoteka crontab je/etc/crontab, vendar lahko vsak uporabnik ustvari tudi svojo datoteko crontab, ki lahko zažene ukaze v trenutkih, ki jih uporabnik določi.

Če želite ustvariti osebno datoteko crontab, preprosto vnesite naslednje:

$ crontab -e

Kako nastaviti Anacron v Linuxu

Anacron se uporablja za redno izvajanje ukazov s frekvenco, določeno v dnevih. Deluje nekoliko drugače kot cron; predpostavlja, da stroj ne bo ves čas vklopljen.

Primeren je za izvajanje dnevnih, tedenskih in mesečnih načrtovanih opravil, ki jih običajno izvaja cron, na strojih, ki ne bodo delovali 24 ur na dan, kot so prenosni in namizni računalniki.

Ob predpostavki, da imate načrtovano nalogo (na primer varnostno kopijo skripta), ki se bo izvajala z uporabo cron vsako polnoč, po možnosti med spanjem, in namizje/prenosni računalnik do takrat izklopljen. Vaš skript za varnostno kopiranje ne bo izveden.

Če pa uporabljate anacron, ste lahko prepričani, da se bo naslednjič, ko ponovno vklopite namizje/prenosni računalnik, izvajal varnostni skript.

Kako Anacron deluje v Linuxu

anacron opravila so navedena v/etc/anacrontab in opravila lahko razporedite v spodnji obliki (komentarji v datoteki anacrontab se morajo začeti z #).

period   delay   job-identifier   command

Iz zgornje oblike:

  • obdobje - to je pogostost izvajanja del, določena v dnevih ali kot @daily, @weekly ali @monthly za enkrat na dan, teden ali mesec. Uporabite lahko tudi številke: 1 - dnevno, 7 - tedensko, 30 - mesečno in N - število dni.
  • zakasnitev - to je število minut čakanja pred izvajanjem opravila.
  • job-id-to je značilno ime za opravilo, zapisano v datotekah dnevnika.

Če si želite ogledati primere datotek, vnesite:

$ 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

  • ukaz - to je ukaz ali skript lupine, ki ga je treba izvesti.

  • Anacron bo preveril, ali je bilo opravilo izvedeno v določenem obdobju v polju za obdobje. V nasprotnem primeru izvede ukaz, naveden v ukaznem polju, po čakanju na število minut, določenih v polju za zakasnitev.
  • Ko je opravilo izvedeno, datum zapiše v datoteko s časovnim žigom v imenik/var/spool/anacron z imenom, določenim v polju id-opravila (ime datoteke s časovnim žigom).

Oglejmo si zdaj primer. Tako boste vsak dan izvajali skript /home/aaronkilik/bin/backup.sh:

@daily    10    example.daily   /bin/bash /home/aaronkilik/bin/backup.sh

Če je naprava izključena, ko se pričakuje, da se bo zagnalo delo backup.sh, jo bo anacron zagnal 10 minut po vklopu, ne da bi čakal še 7 dni.

V datoteki anacrontab morate razumeti dve pomembni spremenljivki:

  • START_HOURS_RANGE - nastavi časovno obdobje, v katerem se bodo opravila začela (tj. izvršiti opravila samo v naslednjih urah).
  • RANDOM_DELAY - to določa največjo naključno zamudo, dodano uporabniško določeni zamudi opravila (privzeto je 45).

Tako bi morda izgledala vaša datoteka 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                                                                      

Spodaj je primerjava cron in anacron, ki vam bo pomagala razumeti, kdaj uporabiti katerega od njih.

Glavna razlika med cronom in anacronom je v tem, da cron učinkovito deluje na strojih, ki bodo delovali neprekinjeno, medtem ko je anacron namenjen strojem, ki se bodo izklopili čez dan ali teden.

Če poznate kako drugače, nam delite z uporabo spodnjega obrazca za komentar.