Anacron è un servizio che viene eseguito dopo ogni riavvio del sistema, controllando eventuali cron e processi pianificati che dovevano essere eseguiti mentre il sistema era inattivo e quindi non sono stati ancora eseguiti. Esegue la scansione di /etc/cron.hourly/anacron file per tre fattori per determinare se eseguire questi lavori persi. I tre fattori sono la presenza del file /var/spool/anacron/cron.daily, il tempo trascorso di 24 ore dall'ultima esecuzione di anacron e la presenza dell'alimentazione CA al sistema. Se tutti e tre i fattori sono affermativi, anacron procede ed esegue automaticamente gli script che si trovano in /etc/cron.daily , /etc/cron.weekly e /etc/cron.monthly directory, in base alle impostazioni e alle condizioni definite nel file di configurazione principale di anacron /etc/anacrontab. Il contenuto predefinito del file /etc/anacrontab è visualizzato di seguito:
$ cat /etc/anacrontab SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root RANDOM_DELAY=45 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
Questo file ha cinque variabili di ambiente definite:SHELL e PERCORSO le variabili impostano la shell e il percorso da utilizzare per l'esecuzione degli script (definiti in fondo a questo file); MAILTO definisce il nome utente o un'e-mail a cui vengono inviati eventuali messaggi di output e di errore; RANDOM_DELAY esprime il ritardo casuale massimo in minuti (aggiunto al ritardo di base dei lavori come definito nella seconda colonna delle ultime tre righe) e START_HOURS_RANGE indica l'intervallo di ore in cui i lavori potrebbero iniziare.
Le ultime tre righe, nell'output di esempio sopra, definiscono la pianificazione e gli script da eseguire. La prima colonna rappresenta il periodo in giorni (o @giornaliero, @settimanale, @mensile o @annuale) utilizzato da anacron per verificare se il lavoro specificato è stato eseguito in tanti giorni o periodo, la seconda specifica il ritardo in minuti per anacron attende prima di eseguire il lavoro, la terza identifica un identificatore di lavoro e la quarta colonna specifica il comando da utilizzare per eseguire il contenuto di /etc/cron.daily, /etc/cron.weekly e /etc/cron .file mensili. Qui il comando run-parts viene utilizzato per eseguire tutti i file nelle tre posizioni delle directory con la correttezza predefinita.
Per ogni lavoro, anacron controlla se il lavoro è stato eseguito in precedenza nei giorni o nel periodo specificato (colonna 1) e lo esegue dopo aver atteso il numero di minuti (colonna 2) se non lo era. Anacron può essere eseguito manualmente al prompt dei comandi. Ad esempio, per eseguire tutti i lavori che sono stati pianificati nel file /etc/anacrontab ma che sono stati persi, è possibile eseguire il comando seguente:
# anacron
Anacron memorizza la sua data di esecuzione nei file che si trovano nella directory /var/spool/anacron per ogni pianificazione definita.