Cos'è anacron e in che modo è diverso da cron?
Anacron viene utilizzato per eseguire comandi periodicamente, con una frequenza specificata in giorni. A differenza di cron, non presuppone che la macchina funzioni continuamente. Pertanto, può essere utilizzato su macchine che non sono in funzione 24 ore al giorno per controllare i lavori regolari come lavori giornalieri, settimanali e mensili. Anacron tenta di eseguire i lavori pianificati il più vicino possibile al tempo di attività del sistema lo consente.
file di configurazione di Anacron
/etc/anacrontab è il file di configurazione di anacron. Di seguito è riportato un esempio di file anacron non modificato:
# cat /etc/anacrontab # /etc/anacrontab: configuration file for anacron # See anacron(8) and anacrontab(5) for details. SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # the maximal random delay added to the base delay of the jobs RANDOM_DELAY=45 # the jobs will be started during the following hours only START_HOURS_RANGE=3-22 #period in days delay in minutes job-identifier command 1 5 cron.daily nice run-parts /etc/cron.daily 7 25 cron.weekly nice run-parts /etc/cron.weekly @monthly 45 cron.monthly nice run-parts /etc/cron.monthly
Qui :
1. periodo in giorni :specifica la frequenza di esecuzione di un lavoro in giorni. Questa variabile può essere rappresentata da un numero intero o da una macro (@daily, @weekly, @monthly), dove @daily indica lo stesso valore dell'intero 1, @weekly uguale a 7 e @monthly specifica che il lavoro viene eseguito una volta al mese, indipendentemente dalla durata del mese.
2. ritardo in minuti :specifica il numero di minuti che anacron attende, se necessario, prima di eseguire un lavoro. Questa variabile è rappresentata da un numero intero dove 0 significa nessun ritardo.
3. identificatore di lavoro :specifica un nome univoco di un lavoro utilizzato nei file di registro.
4. comando :specifica il comando da eseguire. Il comando può essere un comando come ps -ef>> /tmp/processes o un comando per eseguire uno script personalizzato.
Le 3 righe alla fine dei file di configurazione sono lavori cron definiti dal sistema.
1 5 cron.daily nice run-parts /etc/cron.daily 7 25 cron.weekly nice run-parts /etc/cron.weekly @monthly 45 cron.monthly nice run-parts /etc/cron.monthly
Il resto delle variabili viene spiegato con un esempio di seguito.
Esempio di configurazione anacron
Esaminiamo un esempio di configurazione di anacron. Stiamo creando un lavoro anacron per eseguire uno script chiamato "daily_job.sh" ogni giorno con un ritardo di 35 minuti dall'avvio del sistema.
# cat /etc/anacrontab RANDOM_DELAY=30 START_HOURS_RANGE=10-18 1 35 daily_job sh /var/tmp/daily_job.sh
Se il sistema è in esecuzione, il lavoro verrà eseguito secondo START_HOURS_RANGE che è definito nel file /etc/anacrontab. La variabile START_HOURS_RANGE definisce l'intervallo di ore in cui è consentita l'esecuzione del lavoro pianificatob. Nel nostro caso sono le 10:00. alle 18:00 (10-18)
# grep -i START_HOURS_RANGE /etc/anacrontab START_HOURS_RANGE=10-18
Il RANDOM_DELAY variabile indica il numero massimo di minuti che verranno aggiunti alla variabile ritardo in minuti specificata per ogni lavoro. Un RANDOM_DELAY impostato su 30 aggiungerebbe quindi, in modo casuale, tra 0 e 30 minuti al ritardo in minuti per ogni lavoro in quel particolare anacrontab. Se impostato su 0, non viene aggiunto alcun ritardo casuale.
# grep -i RANDOM_DELAY /etc/anacrontab RANDOM_DELAY=30