Cron Vs Anacron: Kuinka ajoittaa työt Anacronin käyttämisestä Linuxissa


Tässä artikkelissa kerromme cronista ja anacronista ja näytämme myös, miten anacron asennetaan Linuxiin. Katamme myös näiden kahden apuohjelman vertailun.

Voit ajastaa tehtävän tietylle tai myöhemmälle ajalle käyttämällä komentoja 'at' tai 'batch' ja asettamalla komennot toistettavaksi. Voit käyttää cron- ja anacron-toimintoja.

Cron - on daemon, jota käytetään ajoitettujen tehtävien, kuten järjestelmän varmuuskopioiden, päivitysten ja monien muiden, suorittamiseen. Se soveltuu ajoitettujen tehtävien suorittamiseen koneilla, jotka toimivat jatkuvasti 24X7, kuten palvelimilla.

Komennot/tehtävät kirjoitetaan cron-töihin, jotka on ajoitettu crontab-tiedostoihin. Järjestelmän oletusarvoinen crontab-tiedosto on/etc/crontab, mutta jokainen käyttäjä voi myös luoda oman crontab-tiedoston, joka voi käynnistää komentoja käyttäjän määritteleminä aikoina.

Luo henkilökohtainen crontab-tiedosto kirjoittamalla seuraava:

$ crontab -e

Anacronin asentaminen Linuxiin

Anacronia käytetään suorittamaan komentoja säännöllisin väliajoin määritetyllä taajuudella. Se toimii hieman eri tavalla kuin cron; olettaa, että konetta ei käynnistetä jatkuvasti.

Se on tarkoituksenmukaista päivittäisten, viikoittaisten ja kuukausittaisten ajoitettujen töiden suorittamiseen, joita tavallisesti hoitaa cron, koneissa, jotka eivät toimi 24–7, kuten kannettavissa tietokoneissa ja työasemakoneissa.

Olettaen, että sinulla on ajoitettu tehtävä (kuten varmuuskopiointiohjelma), joka suoritetaan cronin avulla joka keskiyö, mahdollisesti kun nukut, ja työpöytäsi/kannettava tietokoneesi on pois päältä siihen mennessä. Varmuuskopiotiedostoa ei suoriteta.

Jos kuitenkin käytät anacronia, voit olla varma, että kun seuraavan kerran käynnistät työpöydän/kannettavan tietokoneen uudelleen, varmuuskopiointiohjelma suoritetaan.

Kuinka Anacron toimii Linuxissa

anacron-työt on lueteltu hakemistossa/etc/anacrontab ja työt voidaan ajoittaa alla olevalla muodolla (anacrontab-tiedoston sisällä olevien kommenttien on aloitettava #).

period   delay   job-identifier   command

Yllä olevasta muodosta:

  • ajanjakso - tämä on suoritustiheys, joka määritetään päivinä tai @ päivittäin, @ viikoittain tai @ kuukaudessa kerran päivässä, viikossa tai kuukaudessa. Voit myös käyttää numeroita: 1 - päivittäin, 7 - viikoittain, 30 - kuukausittain ja N - päivien lukumäärä.
  • viive - se on minuuttien määrä odottaa ennen työn suorittamista.
  • työn tunnus - se on lokitiedostoihin kirjoitetun työn erottuva nimi.

Voit tarkastella esimerkkitiedostoja kirjoittamalla:

$ 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

  • komento - se on suoritettava komento tai komentotiedosto.

  • Anacron tarkistaa, onko työ suoritettu määritetyn ajanjakson ajanjaksokentässä. Jos ei, se suorittaa komentokentässä määritetyn komennon odottamalla viivekentässä määritettyä minuuttia.
  • Kun työ on suoritettu, se tallentaa päivämäärän aikamerkintätiedostoon hakemistoon/var/spool/anacron, jonka nimi on määritetty job-id (aikaleimatiedoston nimi) -kentässä.

Tarkastellaan nyt esimerkkiä. Tämä suorittaa /home/aaronkilik/bin/backup.sh -komentosarjan päivittäin:

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

Jos kone on pois päältä, kun backup.sh-työn odotetaan olevan käynnissä, Anacron suorittaa sen 10 minuuttia koneen virran kytkemisen jälkeen odottamatta vielä 7 päivää.

Anacrontab-tiedostossa on kaksi tärkeää muuttujaa, jotka sinun pitäisi ymmärtää:

  • START_HOURS_RANGE - tämä asettaa ajanjakson, jona työt aloitetaan (eli suoritetaan töitä vain seuraavina tunteina).
  • RANDOM_DELAY - tämä määrittää maksimaalisen satunnaisen viiveen, joka lisätään käyttäjän määrittelemään työn viiveeseen (oletusarvoisesti se on 45).

Näin anacrontab -tiedostosi voisi näyttää.

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

Seuraava on vertailu cron ja anacron auttaa sinua ymmärtämään, milloin käyttää kumpaakin niistä.

Suurin ero cronin ja anakronin välillä on se, että cron toimii tehokkaasti koneissa, jotka käyvät jatkuvasti, kun taas anakron on tarkoitettu koneille, jotka sammutetaan päivässä tai viikossa.

Jos tiedät jotain muuta tapaa, jaa kanssamme alla olevaa kommenttilomaketta.