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.