Cron Vs Anacron: Kuidas planeerida töökohti Anacroni abil Linuxis


Selles artiklis selgitame croni ja anakronit ning näitame ka, kuidas anakronit Linuxis seadistada. Samuti käsitleme nende kahe utiliidi võrdlust.

Ülesande ajastamiseks määratud või hilisemal kellaajal saate kasutada käske „at” või „batch” ja seadistada käske korduvalt töötamiseks. Võite kasutada ka croni ja anakroni seadmeid.

Cron - on deemon, mida kasutatakse ajastatud ülesannete nagu süsteemi varukoopiad, värskendused ja palju muud. See sobib ajastatud ülesannete täitmiseks masinates, mis töötavad pidevalt 24x7, näiteks serverites.

Käsud/ülesanded skriptitakse cron-töödesse, mis on ajastatud crontab-failides. Vaikimisi on süsteemi crontab-fail/etc/crontab, kuid iga kasutaja saab luua ka oma crontabi-faili, mis võib käske käivitada kasutaja määratud aegadel.

Isikliku crontab-faili loomiseks sisestage lihtsalt järgmine:

$ crontab -e

Anacroni installimine Linuxis

Anacronit kasutatakse käskude perioodiliseks käitamiseks päevades määratletud sagedusega. See töötab veidi erinevalt cronist; eeldab, et masinat ei lülitata pidevalt sisse.

See sobib igapäevaste, iganädalaste ja igakuiste plaanipäraste tööde käivitamiseks, mida tavaliselt juhib cron, masinates, mis ei tööta 24–7, näiteks sülearvutites ja lauaarvutites.

Eeldades, et teil on plaanitud ülesanne (näiteks varukript), mis tuleb käivitada croni abil igal südaööl, võib-olla siis, kui teie magate, ja töölaud/sülearvuti on selleks ajaks välja lülitatud. Teie varukripti ei käivitata.

Kui aga kasutate anacronit, võite olla kindel, et järgmisel töölaua/sülearvuti sisselülitamisel käivitatakse varukript.

Kuidas Anacron Linuxis töötab

anacroni töökohad on loetletud kataloogis/etc/anacrontab ja töid saab ajastada allolevas vormingus (anacrontabi faili kommentaarid peavad algama numbriga #).

period   delay   job-identifier   command

Ülaltoodud vormingus:

  • periood - see on tööde teostamise sagedus, mis on määratud päevades või @ iga päev, @ iganädalaselt või @ üks kord päevas, nädalas või kuus. Võite kasutada ka numbreid: 1 - iga päev, 7 - nädal, 30 - kuus ja N - päevade arv.
  • viivitus - see on minutite arv, mida oodata enne töö tegemist.
  • töö ID - see on logifailidesse kirjutatud töö eristav nimi.

Näidisfailide vaatamiseks tippige:

$ 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

  • käsk - see on käsk või shelliskript, mida tuleb täita.

  • Anacron kontrollib perioodi väljal määratud aja jooksul, kas töö on täidetud. Kui ei, siis täidab see käsuväljal määratud käsu pärast viivitusväljal määratud minutite arvu ootamist.
  • Kui töö on täidetud, salvestab see kuupäeva kataloogis/var/spool/anacron ajatemplifailis väljale job-id (ajatemplifaili nimi) määratud nimega.

Vaatame nüüd ühte näidet. See käivitab igapäevaselt skripti /home/aaronkilik/bin/backup.sh:

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

Kui masin on välja lülitatud, kui eeldatakse, et töö backup.sh töötab, töötab anacron selle 10 minutit pärast masina sisselülitamist, ilma et peaksite veel 7 päeva ootama.

Anacrontabi failis on kaks olulist muutujat, millest peaksite aru saama:

  • START_HOURS_RANGE - see määrab ajavahemiku, mille jooksul tööd alustatakse (st täidetakse töid ainult järgnevatel tundidel).
  • RANDOM_DELAY - see määratleb maksimaalse juhusliku viivituse, mis lisatakse töö kasutaja määratud viivitusele (vaikimisi on see 45).

Nii võiks teie anacrontabi fail välja näha.

# /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                                                                      

Järgnev on croni ja anakroni võrdlus, mis aitab teil mõista, millal kumbagi neist kasutada.

Peamine erinevus croni ja anakroni vahel on see, et cron töötab tõhusalt pidevalt töötavatel masinatel, samal ajal kui anakron on mõeldud masinate jaoks, mis lülitatakse välja päeva või nädala jooksul.

Kui teate muul viisil, jagage meiega allolevat kommentaarivormi.