ATTENZIONE Il pacchetto fcron è stato rimosso da Debian a partire da Wheezy, utilizzare l'accoppiata cron e anacron in sostituzione. Vedere il bug #636235.
L'installazione di fcron sostituisce anacron, ma non cron.
I task daily, weekly e monthly specificati in /etc/crontab
vengono disattivati a causa del link /usr/sbin/anacron → /bin/true
. In pratica cron
crede che sia installato anacron
e non esegue i task.
Gli fcron system wide sono associati all'utente fittizio systab, per vederli:
fcrontab -l -u systab
Per editare il fcrontab di sistema:
fcrontab -e -u systab
Le impostazioni vengono salvate in /var/spool/fcron/, purtroppo non sono file ASCII.
Per vedere quando un task è stato schedulato, si usa fcrondyn
, che ha un suo prompt di comandi:
fcrondyn fcrondyn> ls systab
La sintassi dei fcrontab
è descritta in man di fcrontab(5)
, ecco un esempio di un comando eseguito ogni 24 ore di uptime:
@mailto(niccolo@rigacci.org),forcemail 24h /usr/local/bin/script
Per job con frequenza maggiore che giornaliera si utilizza sempre cron
, invece anacron
garantisce che i job giornalieri, settimanali o mensili vengano eseguiti correttamente anche su sistemi che non stanno accesi 24h/24h.
anacron
affianca il demone cron
: all'avvio del sistema legge /etc/anacrontab
per vedere quali job devono essere eseguiti. Nella configurazione predefinita Debian, esegue con la periodicità opportuna gli script contenuti in /etc/cron.{daily|weekly|monthly}
, lanciandoli con un certo ritardo specificato. Al termine il demone esce.
Nell'installazione predefinita Debian il demone anacron viene eseguito al bootstrap (servizio /etc/init.d/anacron o equivalente systemd) e poi una volta al giorno dal frammento cron /etc/cron.d/anacron.
L'installazione predefinita Debian di anacron disattiva l'esecuzione automatica degli script /etc/cron.{daily|weekly|monthly}/ (vedere il file /etc/crontab
). In questo modo si evita che i job giornalieri, settimanali e mensili vengano eseguiti doppiamente da anacron e cron.
A seconda dell'uptime previsto per la macchina si può schedulare un job con un frammento di cron messo in /etc/cron.d/
(consigliato ad esempio per frequenze di esecuzione di più volte al giorno) oppure aggiungendo uno script di shell in una delle directory /etc/cron.{daily|weekly|monthly}
(per frequenze giornaliere o superiori).
Per sapere il timestamp dell'ultima esecuzione degli anacron, vedere il contenuto della directory /var/spool/anacron/. Per ogni etichetta indicata nel file /etc/anacrontab viene creato un file al momento dell'esecuzione.
Un eventuale output generato durante l'esecuzione di anacron viene inviato come mail all'utente root. È possibile indicare un destinatario diverso impostando in /etc/anacrontab:
MAILTO=user@domain.org
ATTENZIONE: indirizzi aggiuntivi possono essere separati con una virgola; per delimitare il destinatario non usare apici.
La direttiva MAILTO può comparire più volte nel file di configurazione e agisce solo sulle righe (cron job) seguenti del file stesso.