Cron Vs Anacron: Jinsi ya Kupanga Kazi Kutumia Anacron kwenye Linux


Katika makala hii, tutaelezea cron na anacron na pia inakuonyesha jinsi ya kuanzisha anacron kwenye Linux. Pia tutashughulikia ulinganisho wa huduma hizi mbili.

Ili kuratibu kazi kwa wakati uliotolewa au baadaye, unaweza kutumia amri za 'at' au 'bechi' na kusanidi amri za kufanya kazi mara kwa mara, unaweza kuajiri vifaa vya cron na anacron.

Cron - ni daemoni inayotumika kutekeleza kazi zilizoratibiwa kama vile hifadhi rudufu za mfumo, masasisho na mengine mengi. Inafaa kwa ajili ya kuendesha kazi zilizoratibiwa kwenye mashine ambazo zitaendelea 24X7 kama vile seva.

Amri/kazi zimeandikwa katika kazi za cron ambazo zimepangwa katika faili za crontab. Faili ya crontab ya mfumo chaguo-msingi ni /etc/crontab, lakini kila mtumiaji anaweza pia kuunda faili yake ya crontab ambayo inaweza kuzindua amri kwa nyakati ambazo mtumiaji anafafanua.

Ili kuunda faili ya kibinafsi ya crontab, andika yafuatayo:

$ crontab -e

Jinsi ya kusanidi Anacron kwenye Linux

Anacron hutumiwa kutekeleza amri mara kwa mara na frequency iliyofafanuliwa kwa siku. Inafanya kazi tofauti kidogo na cron; inadhania kuwa mashine haitawashwa kila wakati.

Inafaa kwa kufanya kazi za kila siku, za wiki, na za kila mwezi zilizoratibiwa kwa kawaida zinazoendeshwa na cron, kwenye mashine ambazo hazitafanya kazi 24-7 kama vile kompyuta za mkononi na za mezani.

Ikizingatiwa kuwa una kazi iliyoratibiwa (kama hati ya chelezo) ya kuendeshwa kwa kutumia cron kila usiku wa manane, ikiwezekana wakati umelala, na kompyuta yako ya mezani/laptop imezimwa kwa wakati huo. Hati yako ya chelezo haitatekelezwa.

Hata hivyo, ukitumia anacron, unaweza kuhakikishiwa kwamba wakati mwingine utakapowasha tena kompyuta ya mezani/laptop, hati ya chelezo itatekelezwa.

Jinsi Anacron Inafanya kazi katika Linux

kazi za anacron zimeorodheshwa katika /etc/anacrontab na kazi zinaweza kuratibiwa kwa kutumia umbizo lililo hapa chini (maoni ndani ya faili ya anacrontab lazima yaanze na #).

period   delay   job-identifier   command

Kutoka kwa muundo hapo juu:

  • kipindi - haya ni marudio ya utekelezaji wa kazi yaliyobainishwa katika siku au kama @daily, @wikily, au @monthly kwa mara moja kwa siku, wiki, au mwezi. Unaweza pia kutumia nambari: 1 - kila siku, 7 - kila wiki, 30 - kila mwezi na N - idadi ya siku.
  • kuchelewa - ni idadi ya dakika za kusubiri kabla ya kutekeleza kazi.
  • job-id - ni jina bainifu la kazi iliyoandikwa kwenye faili za kumbukumbu.

Ili kuona faili za mfano, chapa:

$ 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

  • amri - ni amri au hati ya ganda ya kutekelezwa.

  • Anacron itaangalia kama kazi imetekelezwa ndani ya kipindi kilichobainishwa katika uga wa kipindi. Ikiwa sivyo, itatekeleza amri iliyobainishwa katika sehemu ya amri baada ya kusubiri idadi ya dakika iliyobainishwa katika sehemu ya kuchelewa.
  • Baada ya kazi kutekelezwa, hurekodi tarehe katika faili ya muhuri wa muda katika saraka ya /var/spool/anacron yenye jina lililobainishwa kwenye sehemu ya kitambulisho cha kazi (jina la faili la muhuri wa muda).

Hebu sasa tuangalie mfano. Hii itaendesha hati /home/aaronkilik/bin/backup.sh kila siku:

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

Ikiwa mashine imezimwa wakati kazi ya backup.sh inatarajiwa kufanya kazi, anacron itaiendesha dakika 10 baada ya mashine kuwashwa bila kungoja kwa siku 7 zaidi.

Kuna anuwai mbili muhimu kwenye faili ya anacrontab ambayo unapaswa kuelewa:

  • START_HOURS_RANGE - hii huweka kipindi ambacho kazi zitaanzishwa (yaani, kutekeleza kazi kwa saa zifuatazo pekee).
  • RANDOM_DELAY - hii inafafanua upeo wa ucheleweshaji wa nasibu unaoongezwa kwa ucheleweshaji uliobainishwa na mtumiaji wa kazi (kwa chaguo-msingi ni 45).

Hivi ndivyo faili yako ya anacrontab inavyoweza kuonekana.

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

Ifuatayo ni ulinganisho wa cron na anacron ili kukusaidia kuelewa wakati wa kutumia mojawapo yao.

Tofauti kuu kati ya cron na anacron ni kwamba cron inafanya kazi kwa ufanisi kwenye mashine ambazo zitaendelea kufanya kazi wakati anacron imekusudiwa kwa mashine ambazo zitazimwa kwa siku moja au wiki.

Ikiwa unajua njia nyingine yoyote, shiriki nasi kwa kutumia fomu ya maoni hapa chini.