Il daemon cron gestisce la pianificazione dei job sui sistemi che stanno accesi ininterrottamente per molto tempo. Infatti esso lancia i comandi (job) quando la data/ora di sistema soddisfa le indicazioni presenti nei file crontab ma se la macchina in tali orari è spenta, i job pianificati non vengono lanciati.
Per dotare anche i PC che vengono accesi soltanto per un periodo di tempo limitato all’interno della giornata, di un meccanismo analogo alla pianificazione gestita da cron, si può utilizzare il daemon anacron (man page anacron(8)). Tale daemon è generalmente lanciato dalla procedura di avvio del sistema (anacron -s) e permette di schedulare l’avvio di job a cadenza giornaliera o multipli di giorni. Il processo anacron gestisce la pianificazione dei job da lanciare per mezzo del file /etc/anacrontab (man page anacrontab(5)) (analogo al file /etc/crontab) che è costituito da righe con la sintassi seguente:
period delay job-identifier command
dove
Analogamente a quanto visto per i files crontab, esiste anche la possibilità di specificare, all’interno del file anacrontab, assegnamenti di variabili di ambiente. Ciò può essere fatto inserendo delle righe con la seguente sintassi:
name = value
dove name è il nome della variabile di ambiente da impostare e value è il valore con cui
impostarla.
Quando il processo anacron viene avviato, esso controlla il file /etc/anacrontab che contiene la lista dei job da avviare. Per ogni job anacron controlla se è stato avviato negli ultimi period giorni (per tenere memoria dei comandi che sono stati effettivamente lanciati secondo le indicazioni del file /etc/anacrontab, anacron utilizza dei file contenuti nella directory /var/spool/anacron). Se non è così anacron lancia il comando command dopo delay minuti e quando il job relativo al comando command è terminato, ne registra l’avvenuta esecuzione in appositi file nella directory /var/spool/anacron. Quando non ci sono più comandi (job) da lanciare anacron termina.
Un esempio del file /etc/anacrontab è riportato di seguito:
# /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
1 65 cron.daily run-parts /etc/cron.daily
7 70 cron.weekly run-parts /etc/cron.weekly
30 75 cron.monthly run-parts /etc/cron.monthly