Cron vs Anacron: Wéi plangt Dir Aarbechtsplaze mat Anacron op Linux


An dësem Artikel wäerte mir Cron an Anacron erklären a weisen Iech och wéi Dir Anacron op Linux opstellt. Mir wäerten och e Verglach vun dësen zwee Utilities ofdecken.

Fir eng Aufgab op enger bestëmmter oder spéider Zäit ze plangen, kënnt Dir d''at' oder 'batch' Kommandoen benotzen a fir Kommandoen opzestellen fir ëmmer erëm ze lafen, kënnt Dir d'Cron an d'Anacron Ariichtungen benotzen.

Cron - ass en Daemon dee benotzt gëtt fir geplangten Aufgaben wéi Systembackups, Updates a vill méi ze lafen. Et ass gëeegent fir geplangten Aufgaben op Maschinnen ze lafen déi kontinuéierlech 24X7 lafen wéi Serveren.

D'Befehle/Aufgabe ginn a Cron Jobs geschriwen, déi a Crontab Dateien geplangt sinn. D'Default-System-Crontab-Datei ass /etc/crontab, awer all Benotzer kann och seng eege Crontab-Datei erstellen, déi d'Befehle bei Zäiten starten, déi de Benotzer definéiert.

Fir eng perséinlech Crontab Datei ze kreéieren, gitt einfach déi folgend:

$ crontab -e

Wéi Setup Anacron op Linux

Anacron gëtt benotzt fir Kommandoen periodesch mat enger Frequenz ze lafen, déi an Deeg definéiert ass. Et funktionnéiert e bëssen anescht wéi Cron; gëtt ugeholl, datt eng Maschinn net all Zäit ugedriwwe ginn.

Et ass passend fir alldeeglech, wëchentlech a monatlecht geplangten Aarbechtsplazen ze lafen, déi normalerweis vum Cron lafen, op Maschinnen déi net 24-7 lafen wéi Laptops an Desktops Maschinnen.

Unzehuelen datt Dir eng geplangte Aufgab hutt (wéi e Backup-Skript) fir mat Cron all Mëtternuecht ze lafen, méiglecherweis wann Dir schléift, an Ären Desktop/Laptop zu där Zäit aus ass. Äre Backup Skript gëtt net ausgefouert.

Wéi och ëmmer, wann Dir Anacron benotzt, kënnt Dir sécher sinn datt d'nächst Kéier wann Dir den Desktop/Laptop erëm opmaacht, de Backup Skript ausgefouert gëtt.

Wéi Anacron funktionnéiert a Linux

anacron Aarbechtsplaze sinn an /etc/anacrontab opgezielt an Aarbechtsplaze kënne mat dem Format hei ënnen geplangt ginn (Kommentaren an der anacrontab Datei musse mat # ufänken).

period   delay   job-identifier   command

Aus dem uewe genannte Format:

  • Period - dëst ass d'Frequenz vun der Ausféierung vun der Aarbecht, spezifizéiert an Deeg oder als @daily, @weekly, oder @monthly fir eemol pro Dag, Woch oder Mount. Dir kënnt och Zuelen benotzen: 1 - deeglech, 7 - wöchentlech, 30 - all Mount an N - Zuel vun Deeg.
  • Verzögerung - et ass d'Zuel vun de Minutte fir ze waarden ier Dir eng Aarbecht ausféiert.
  • Job-ID - et ass den ënnerschiddlechen Numm fir d'Aarbecht, déi a Logdateien geschriwwe gëtt.

Fir Beispilldateien ze gesinn, gitt:

$ 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

  • Kommando - et ass de Kommando oder de Shell-Skript fir auszeféieren.

  • Anacron iwwerpréift ob eng Aarbecht bannent der spezifizéierter Period am Periodefeld ausgefouert gouf. Wann net, fiert et de Kommando aus, deen am Kommandofeld uginn ass, nodeems d'Zuel vun de Minutten am Verzögerungsfeld gewaart gouf.
  • Wéi d'Aarbecht ausgefouert gouf, registréiert se den Datum an enger Zäitstempeldatei am /var/spool/anacron Verzeichnis mam Numm an der Job-ID (Zäitstempel Dateinumm) Feld uginn.

Loosst eis elo e Beispill kucken. Dëst wäert den /home/aaronkilik/bin/backup.sh Skript all Dag lafen:

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

Wann d'Maschinn aus ass, wann d'Backup.sh Aarbecht erwaart gëtt ze lafen, wäert d'anacron et 10 Minutte lafen nodeems d'Maschinn ugedriwwen ass, ouni datt Dir nach 7 Deeg muss waarden.

Et ginn zwou wichteg Variabelen an der anacrontab Datei déi Dir sollt verstoen:

  • START_HOURS_RANGE - dëst setzt d'Zäitberäich an an där d'Aarbechte gestart ginn (d.h. Aarbechtsplazen nëmmen an de folgende Stonnen ausféieren).
  • RANDOM_DELAY - dëst definéiert déi maximal zoufälleg Verspéidung, déi op d'Benotzerdefinéiert Verzögerung vun enger Aarbecht bäigefüügt gëtt (par défaut ass et 45).

Dëst ass wéi Är anacrontab Datei méiglecherweis ausgesäit.

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

Déi folgend ass e Verglach vu Cron an Anacron fir Iech ze hëllefen ze verstoen wéini ee vun hinnen benotzt.

De groussen Ënnerscheed tëscht Cron an Anacron ass datt Cron effektiv funktionnéiert op Maschinnen déi kontinuéierlech lafen, während Anacron fir Maschinnen geduecht ass déi an engem Dag oder Woch ausgeschalt ginn.

Wann Dir eng aner Manéier kennt, deelt mat eis andeems Dir de Kommentarformular hei drënner benotzt.