Anacron

From EIK wiki

Artiklist

Autor: Jarmo Kungla
Rühm: AK21 2014 sügis

Sissejuhatus

Selles artiklis seletatakse lahti käsu Anacron kasutamise võimalused ja viisid. Anacroni kasutataks käskude perioodiliseks käivitamiseks. Ta on väga sarnase käsule cron, kuid Anacron on pigem mõeldud lauaarvutitele või sülearvutitele, sest ta ei eelda, et süsteem peaks olema sisse lülitatud 24/7. See muidugi ei tähenda, et käsud käivituvad suletud masinas vaid seda, et Anacrontabis määratud käsud käivituvad siis kui süsteem järgmine kord uuesti sisse lülitatakse. Anacrontab on Anacroni fail, milles on defineeritud käivitatavad käsud ning ajakava. Anacrontab fail on algselt määratud muudetavaks vaid root kasutaja alt (faili õiguseid on võimalik muuta kuid see ei ole turvalisuse huvides soovitatav).

Anacron tööpõhimõte

Anacron loeb kõik käsud ja reeglid mida ta täitma peab Anacrontab failist, mis asub /etc/anacrontab. Iga rida on omaette tegevus, mida Anacron täidab vastavalt määratud perioodile päevades, viivitusele minutites, unikaalsele tegevuse identifikaatorile ning shell käsule. Iga tegevuse korral kontrollib Anacron kas see tegevus on käivitatud viimase N-päeva jooksul, kus N on aja periood päevades ette antud sellele tegevusele. Kui tegevus ei ole käivitatud, siis Anacron käivitab ette antud käsu peale viivituse ära ootamist. Kui tegevus on täidetud, salvestab Anacron selle hetke kuupäeva spetsiaalses formaadis identifikaatori nimelisse faili, et ta teaks, millal seda tegevust uuesti käivitada. [1]

Anacrontabi formaat

periood   viivitus   identifikaator   käsk
Väli 1 - Kordusperiood

Tegemist on numbrilise väärtusega, mis määrab päevade arvu, kui tihti tegevus käivitatakse.

  • 1 - Iga päev
  • 7 - Kord nädalas
  • 30 - Igakuiselt (võib ka kasutada @monthly)
  • N - Ükskõik milline number. Tähistab päevade arvu
Väli 2 - Viivitus

. Tegemist on numbrilise väärtusega, mis näitab minutites, kui kaua tuleb peale masina käivitamis oodata, et tegevus käivitada.

Väli 3 - Tegevuse identifikaator

See peab olema unikaalne nimetus igale tegevusele. Samuti on igale unikaalsele identifikaatorile olemas sama nimeline fail kaustas /var/spool/anacron/. See fail sisaldab ainult ühte rida numbreid, mis näitavad, millal viimati see tegevus käivitati.

# ls -1 /var/spool/anacron/
test.daily
cron.daily
cron.monthly
cron.weekly

# cat /var/spool/anacron/test.daily
20110507
Väli 4 - Tegevuse käsk või fail

See on kas shell käsk või suunatud fail, mida Anacron käivitab.


Samamoodi nagu shell script, käib ka Anacrontab failis kommentaarid # märgi taha.

Anacrontab näide
# cat /etc/anacrontab
7       15      test.daily      /bin/sh /home/sathiya/backup.sh

See näide käivitab /home/sathiya/backup.sh skripti korra iga 7 päeva tagant. Kui käivitamise hetkel on arvuti või süsteem välja lülitatud siis käivitub peale arvuti järgmist sisse lülitamist 15 minutiline viivitus ja peale seda alles /home/sathiya/backup.sh skript.

START_HOURS_RANGE ja RANDOM_DELAY
  • Erinevalt Crontabist, ei ole Anacrontabis ära määratud täpset kellaaega, millal vastav tegevus käivitatakse kui süsteem ei ole välja lülitatud. Selleks lisatakse Anacrontab faili START_HOURS_RANGE muutuja. Vaikimisi on selleks väärtuseks START_HOURS_RANGE = 3-22, mis tähendab, et vastav tegevus käivitatakse ajavahemikus kell 3:00 kuni 22:00.
  • Lisaks kasutaja poolt lisatud viivitusele Anacrontabis on võimalik lisada veel suvaliselt valitud minuteid viivitust otsa. RANDOM_DELAY muutuja käib samuti Anacrontab faili ning tema vaikimisi väärtuseks on RANDOM_DELAY = 45, mis tähendab, et võetakse suvaline arv 0-st kuni 45-ni ning liidetakse see otsa juba määratud viivitusele.

[3]

Anacron käsu kasutamine

anacron [võtmed] [tegevus]
Võtmete kirjeldused
       -f     Sunniviisiliselt käivitab kõik tegevused. Ignoreerib kordusperioodi väärtust.

       -u     Uuendab kõikide tegevuste kordusperioodi väärtuse tänasele kuupäevale. 
              Ei käivita tegevusi.

       -s     Järjestab tegevused. Ei käivita järgmist tegevust enne kui eelmine tehtud saab.

       -n     Sunniviisiliselt käivitab kõik tegevused ignoreerides kordusperioodi ja viivituse väärtust.

       -d     Ei suuna Anacroni taustale töötama. Kasutatakse paremaks käsu väljundi lugemiseks.

       -q     Suunab iga väljundi standartsesse vea lahtrisse. Töötab vaid koos -d võtmega.

       -t mingi_anacrontab
              Kasutab mõnda teist Anacrontab faili, mitte vaikimisi /etc/anacrontab faili.

       -T     Testimiseks. Valideerib Anacrontabi faili sisu. Leiab üles failis olevad vead.

       -S spooldir
              Kasutab vastavat spooldir-i, kus kordusperioodi väärtuseid hoida.

       -V     Kuvab versiooni informatsiooni.

       -h     Kuvab lühikese kasutamis õpetuse.

[1]

Kokkuvõte

Millal valida Cron asemel Anacron?

  • Anacron ei nõua süsteemi töötamist 24/7. Käsud pannakse tööle siis kui süsteem taas käivitatakse.
  • Sobib paremini lauaarvutis või sülearvutis kasutades.
  • Anacrontabis ei ole võimalik täpsustada tunde ja minuteid, millal tegevust tuleb käivitada.
  • Anacron on mõeldud kasutama administraatori õigustes(vajadusel on võimalik ka tava kasutaja õigustes)

Kasutatud kirjandus

[1] http://linux.die.net/man/8/anacron
[2] http://linux.die.net/man/5/anacrontab
[3] http://www.thegeekstuff.com/2011/05/anacron-examples/