Ricerca nel sito web

Cron Vs Anacron: come pianificare i lavori utilizzando Anacron su Linux


In questo articolo spiegheremo cron e anacron e ti mostreremo anche come configurare anacron su Linux. Tratteremo anche un confronto tra queste due utilità.

Per pianificare un'attività in un determinato momento o in un momento successivo, puoi utilizzare i comandi 'at' o 'batch' e per impostare i comandi da eseguire ripetutamente, puoi utilizzare i comandi < strutturecron e anacron.

Cron – è un demone utilizzato per eseguire attività pianificate come backup di sistema, aggiornamenti e molto altro. È adatto per l'esecuzione di attività pianificate su macchine che funzioneranno continuamente 24 ore su 24, 7 giorni su 7, come i server.

I comandi/attività vengono inseriti negli script nei processi cron pianificati nei file crontab. Il file crontab di sistema predefinito è /etc/crontab, ma ogni utente può anche creare il proprio file crontab in grado di avviare comandi negli orari definiti dall'utente.

Per creare un file crontab personale, digita semplicemente quanto segue:

crontab -e

Come configurare Anacron su Linux

Anacron viene utilizzato per eseguire periodicamente comandi con una frequenza definita in giorni. Funziona in modo leggermente diverso da cron; presuppone che la macchina non sarà sempre accesa.

È appropriato per eseguire lavori pianificati giornalieri, settimanali e mensili normalmente eseguiti da cron, su macchine che non funzioneranno 24 ore su 24, 7 giorni su 7, come laptop e computer desktop.

Supponendo che tu abbia un'attività pianificata (come uno script di backup) da eseguire utilizzando cron ogni mezzanotte, possibilmente quando dormi, e che il tuo desktop/laptop sia spento a quell'ora. Lo script di backup non verrà eseguito.

Tuttavia, se utilizzi anacron, puoi essere certo che la prossima volta che accenderai nuovamente il desktop/laptop, lo script di backup verrà eseguito.

Come funziona Anacron su Linux

I lavori anacron sono elencati in /etc/anacrontab e i lavori possono essere pianificati utilizzando il formato seguente (i commenti all'interno del file anacrontab devono iniziare con #).

period   delay   job-identifier   command

Dal formato sopra:

  • periodo: questa è la frequenza di esecuzione del lavoro specificata in giorni o come @giornaliero, @settimanale o @mensile per una volta al giorno, settimana o mese. Puoi anche utilizzare i numeri: 1 – giornaliero, 7 – settimanale, 30 – mensile e N – numero di giorni.
  • ritardo: è il numero di minuti di attesa prima di eseguire un lavoro.
  • job-id: è il nome distintivo del lavoro scritto nei file di registro.

Per visualizzare file di esempio, digitare:

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
  • comando – è il comando o lo script di shell da eseguire.
Questo è ciò che accade praticamente:
  • Anacron controllerà se un lavoro è stato eseguito entro il periodo specificato nel campo periodo. In caso contrario, esegue il comando specificato nel campo comando dopo aver atteso il numero di minuti specificato nel campo ritardo.
  • Una volta eseguito il lavoro, registra la data in un file timestamp nella directory /var/spool/anacron con il nome specificato nel campo job-id (nome file timestamp).

Vediamo ora un esempio. Questo eseguirà lo script /home/aaronkilik/bin/backup.sh ogni giorno:

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

Se la macchina è spenta quando è prevista l'esecuzione del lavoro backup.sh, anacron lo eseguirà 10 minuti dopo l'accensione della macchina senza dover attendere altri 7 giorni.

Ci sono due variabili importanti nel file anacrontab che dovresti comprendere:

  • START_HOURS_RANGE: imposta l'intervallo di tempo in cui verranno avviati i lavori (ovvero eseguirà i lavori solo durante le ore successive).
  • RANDOM_DELAY: definisce il ritardo casuale massimo aggiunto al ritardo definito dall'utente di un lavoro (per impostazione predefinita è 45).

Ecco come potrebbe apparire il tuo file anacrontab.

/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                                                                      

Quello che segue è un confronto tra cron e anacron per aiutarti a capire quando utilizzare uno dei due.

It’s a daemon

Non è un demone

Appropriate for server machines

Adatto per macchine desktop/laptop

Enables you to run scheduled jobs every minute

Consente solo di eseguire lavori pianificati su base giornaliera

Doesn’t executed a scheduled job when the machine if off

Se la macchina è spenta al momento della scadenza di un lavoro pianificato, eseguirà un lavoro pianificato alla successiva accensione della macchina

Can be used by both normal users and root

Può essere utilizzato solo da root se non diversamente (abilitato per utenti normali con configurazioni specifiche)

La differenza principale tra cron e anacron è che cron funziona in modo efficace su macchine che funzioneranno continuamente mentre è previsto anacron per macchine che verranno spente entro un giorno o una settimana.

Se conosci un altro modo, condividilo con noi utilizzando il modulo di commento qui sotto.