Cron Vs Anacron: Kā ieplānot darbus, izmantojot Anacron operētājsistēmā Linux


Šajā rakstā mēs izskaidrosim cron un anacron, kā arī parādīsim, kā iestatīt anacron Linux. Mēs arī aplūkosim šo divu utilītu salīdzinājumu.

Lai ieplānotu uzdevumu noteiktā laikā vai vēlāk, varat izmantot komandas ‘at’ vai ‘batch’ un, lai iestatītu komandas, lai tās palaistu atkārtoti, varat izmantot cron un anacron iespējas.

Cron - ir dēmons, ko izmanto, lai palaistu ieplānotus uzdevumus, piemēram, sistēmas dublējumus, atjauninājumus un daudz ko citu. Tas ir piemērots plānoto uzdevumu izpildei mašīnās, kas nepārtraukti darbosies 24X7, piemēram, serveros.

Komandas/uzdevumi tiek ierakstīti cron darbos, kas ir ieplānoti crontab failos. Noklusējuma sistēmas crontab fails ir/etc/crontab, taču katrs lietotājs var izveidot arī savu crontab failu, kas var sākt komandas brīžos, kurus lietotājs nosaka.

Lai izveidotu personīgo crontab failu, vienkārši ierakstiet šo:

$ crontab -e

Kā iestatīt Anacron Linux

Anacron tiek izmantots, lai periodiski palaistu komandas ar biežumu, kas noteikts dienās. Tas darbojas nedaudz atšķirīgi no cron; pieņem, ka mašīna visu laiku netiks ieslēgta.

Tas ir piemērots ikdienas, nedēļas un mēneša plānoto darbu veikšanai, kurus parasti vada cron, mašīnās, kuras nedarbosies 24–7, piemēram, klēpjdatoros un galddatoros.

Pieņemot, ka jums ir ieplānots uzdevums (piemēram, rezerves skripts), kas jāizpilda, izmantojot cron katru pusnakti, iespējams, kad esat aizmidzis, un līdz tam laikam darbvirsma/klēpjdators ir izslēgts. Jūsu rezerves skripts netiks izpildīts.

Tomēr, ja izmantojat anacron, varat būt drošs, ka nākamreiz, kad atkal ieslēdzat darbvirsmu/klēpjdatoru, tiks izpildīts dublējuma skripts.

Kā Anacron darbojas Linux

anacron darbi ir uzskaitīti mapē/etc/anacrontab, un darbus var ieplānot, izmantojot zemāk redzamo formātu (komentāriem anacrontab failā jāsākas ar #).

period   delay   job-identifier   command

No iepriekš minētā formāta:

  • periods - tas ir darba izpildes biežums, kas norādīts dienās vai kā @daily, @weekly vai @monthly reizi dienā, nedēļā vai mēnesī. Varat arī izmantot skaitļus: 1 - katru dienu, 7 - katru nedēļu, 30 - mēnesi un N - dienu skaitu.
  • kavēšanās - tas ir minūtes, kas jāgaida pirms darba izpildes.
  • darba ID - tas ir darba atšķirīgais nosaukums, kas ierakstīts žurnāla failos.

Lai skatītu failu piemērus, ierakstiet:

$ 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

  • komanda - tā ir komanda vai čaulas skripts, kas jāizpilda.

  • Anacron perioda laukā pārbaudīs, vai darbs ir izpildīts norādītajā laika posmā. Ja nē, tas izpilda komandu, kas norādīta komandu laukā, pēc tam, kad ir gaidīts aizkavēšanās laukā norādītais minūšu skaits.
  • Kad darbs ir izpildīts, tas ieraksta datumu laika zīmoga failā direktorijā/var/spool/anacron ar laukā job-id (timestamp faila nosaukums) norādīto nosaukumu.

Tagad aplūkosim piemēru. Tas katru dienu darbinās skriptu /home/aaronkilik/bin/backup.sh:

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

Ja tiek gaidīts, ka darbosies backup.sh, iekārta ir izslēgta, anacron palaidīs to 10 minūtes pēc iekārtas ieslēgšanas, negaidot vēl 7 dienas.

Anacrontab failā ir divi svarīgi mainīgie, kas jums jāsaprot:

  • START_HOURS_RANGE - tas nosaka laika diapazonu, kurā tiks sākti darbi (t.i., izpildiet darbus tikai nākamajās stundās).
  • RANDOM_DELAY - tas nosaka maksimālo nejaušo aizkavi, kas pievienota lietotāja definētai darba aizkavei (pēc noklusējuma tā ir 45).

Tas varētu izskatīties jūsu anacrontab fails.

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

Šis ir cron un anacron salīdzinājums, lai palīdzētu jums saprast, kad lietot kādu no tiem.

Galvenā atšķirība starp cron un anakronu ir tā, ka cron efektīvi darbojas uz mašīnām, kas darbosies nepārtraukti, savukārt anacron ir paredzēts mašīnām, kuras tiks izslēgtas dienā vai nedēļā.

Ja zināt kādu citu veidu, dalieties ar mums, izmantojot zemāk esošo komentāru veidlapu.