====== fcron ======
:!: **ATTENZIONE** Il pacchetto **[[https://packages.debian.org/search?searchon=names&keywords=fcron|fcron]]** è stato rimosso da Debian a partire da Wheezy, utilizzare l'accoppiata **cron** e **anacron** in sostituzione. Vedere il bug [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=636235|#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
====== anacron ======
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.