Cron Vs Anacron: Bii o ṣe le Ṣeto Awọn iṣẹ Lilo Anacron lori Lainos


Ninu nkan yii, a yoo ṣalaye cron ati anacron ati tun fihan ọ bi o ṣe le ṣeto anacron lori Linux. A yoo daradara bo lafiwe ti awọn iṣẹ-ṣiṣe meji wọnyi.

Lati seto iṣẹ-ṣiṣe kan ni akoko ti a fifun tabi nigbamii, o le lo awọn aṣẹ ‘ni’ tabi ‘ipele’ ati lati ṣeto awọn aṣẹ lati ṣiṣẹ leralera, o le lo awọn ohun elo cron ati anacron.

Cron - jẹ daemon ti a lo lati ṣiṣe awọn iṣẹ ṣiṣe ti a ṣeto gẹgẹbi awọn ifẹhinti eto, awọn imudojuiwọn ati ọpọlọpọ diẹ sii. O dara fun ṣiṣe awọn iṣẹ ṣiṣe eto lori awọn ero ti yoo ṣiṣẹ 24X7 nigbagbogbo bi awọn olupin.

Awọn aṣẹ/awọn iṣẹ-ṣiṣe ni a kọ sinu awọn iṣẹ cron eyiti a ṣe eto ni awọn faili crontab. Faili crontab eto aiyipada jẹ/ati be be/crontab, ṣugbọn olumulo kọọkan tun le ṣẹda faili crontab tiwọn ti o le ṣe ifilọlẹ awọn aṣẹ ni awọn akoko ti olumulo n ṣalaye.

Lati ṣẹda faili crontab ti ara ẹni, tẹ iru atẹle:

$ crontab -e

Bii o ṣe le Ṣeto Anacron ni Lainos

A lo Anacron lati ṣiṣẹ awọn aṣẹ ni igbakọọkan pẹlu igbohunsafẹfẹ ti a ṣalaye ni awọn ọjọ. O ṣiṣẹ diẹ ti o yatọ si cron; dawọle pe ẹrọ kan kii yoo ni agbara ni gbogbo igba.

O jẹ deede fun ṣiṣe lojoojumọ, ọsẹ, ati awọn iṣẹ eto eto oṣooṣu deede nipasẹ cron, lori awọn ero ti kii yoo ṣiṣẹ 24-7 gẹgẹbi awọn kọǹpútà alágbèéká ati awọn ẹrọ kọǹpútà.

A ro pe o ni iṣẹ ṣiṣe ti a ṣeto (gẹgẹ bi iwe afọwọkọ afẹyinti) lati wa ni ṣiṣe pẹlu lilo cron ni gbogbo ọganjọ, o ṣee ṣe nigbati o ba sùn, ati tabili tabili/kọǹpútà alágbèéká rẹ wa ni pipa nipasẹ akoko yẹn. Iwe afọwọkọ afẹyinti rẹ kii yoo ṣiṣẹ.

Sibẹsibẹ, ti o ba lo anacron, o le ni idaniloju pe nigbamii ti o ba ni agbara lori deskitọpu/kọǹpútà alágbèéká lẹẹkansii, iwe afọwọkọ afẹyinti yoo wa ni pipa.

Bii Anacron ṣe n ṣiṣẹ ni Lainos

a ṣe akojọ awọn iṣẹ anacron ni/ati be be lo/anacrontab ati pe awọn iṣẹ le ṣe eto nipa lilo ọna kika ni isalẹ (awọn asọye inu faili anacrontab gbọdọ bẹrẹ pẹlu #).

period   delay   job-identifier   command

Lati ọna kika loke:

  • akoko - eyi ni igbohunsafẹfẹ ti ipaniyan iṣẹ ti a sọ ni awọn ọjọ tabi bi @daily, @weekly, tabi @monthly fun ẹẹkan fun ọjọ kan, ọsẹ, tabi oṣu. O tun le lo awọn nọmba: 1 - lojoojumọ, 7 - lọsẹẹsẹ, 30 - oṣooṣu ati N - nọmba awọn ọjọ.
  • idaduro
  • - o jẹ nọmba awọn iṣẹju lati duro ṣaaju ṣiṣe iṣẹ.
  • iṣẹ-id - o jẹ orukọ iyasọtọ fun iṣẹ ti a kọ sinu awọn faili log.

Lati wo awọn faili apẹẹrẹ, tẹ:

$ 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

  • pipaṣẹ - o jẹ aṣẹ tabi afọwọkọ ikarahun lati ṣe.

  • Anacron yoo ṣayẹwo ti o ba ti ṣiṣẹ iṣẹ kan laarin akoko ti a ṣalaye ninu aaye asiko naa. Ti kii ba ṣe bẹ, o ṣe pipaṣẹ ti a sọ ni aaye aṣẹ lẹhin ti nduro nọmba awọn iṣẹju ti a ṣalaye ninu aaye idaduro.
  • Lọgan ti a ba ti ṣiṣẹ iṣẹ naa, o ṣe igbasilẹ ọjọ ni faili timestamp kan ninu itọsọna/var/spool/anacron pẹlu orukọ ti a ṣalaye ninu aaye id-iṣẹ (orukọ faili timestamp).

Jẹ ki a wo apẹẹrẹ bayi. Eyi yoo ṣiṣẹ iwe-akọọlẹ /home/aaronkilik/bin/backup.sh lojoojumọ:

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

Ti ẹrọ naa ba wa ni pipa nigbati a ba nireti iṣẹ backup.sh lati ṣiṣẹ, anacron yoo ṣiṣẹ ni iṣẹju mẹwa 10 lẹhin ti ẹrọ naa wa ni titan laisi nini lati duro fun awọn ọjọ 7 miiran.

Awọn oniyipada pataki meji wa ninu faili anacrontab ti o yẹ ki o ye:

  • START_HOURS_RANGE - eyi ṣeto ibiti akoko ninu eyiti awọn iṣẹ yoo bẹrẹ (ie ṣiṣe awọn iṣẹ lakoko awọn wakati wọnyi).
  • RANDOM_DELAY - eyi n ṣalaye idaduro aifọwọyi ti o pọ julọ ti a ṣafikun olumulo ti a ṣalaye ti idaduro iṣẹ kan (nipa aiyipada o jẹ 45).

Eyi ni bi faili anacrontab rẹ ṣe le ṣee ṣe.

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

Atẹle yii jẹ ifiwera ti cron ati anacron lati ṣe iranlọwọ fun ọ lati loye igba ti o le lo eyikeyi ninu wọn.

Iyatọ nla laarin cron ati anacron ni pe cron n ṣiṣẹ daradara lori awọn ero ti yoo ṣiṣẹ lemọlemọ lakoko ti a ti pinnu anacron fun awọn ẹrọ ti yoo ni agbara ni ọjọ kan tabi ọsẹ kan.

Ti o ba mọ ọna miiran, ṣe alabapin pẹlu wa ni lilo fọọmu asọye ni isalẹ.