Quando il computer viene spento (o altrimenti il demone cron non è in esecuzione), i lavori cron non verranno avviati.
Se si dispone di lavori che si desidera eseguire dopo il fatto in quei momenti in cui il computer è spento, utilizzare anacron. Installato di default, vedere "man anacron", "man anacrontab" o il file / etc / anacrontab per maggiori informazioni.
Ubuntu utilizza anacron per impostazione predefinita per le voci crontab in:
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
lasciando che i crontab rimanenti vengano gestiti dal demone cron principale, in particolare:
/etc/crontab
/etc/cron.d
/var/spool/cron
APPUNTI
Anacron stesso non viene eseguito come demone, ma si basa su script di avvio del sistema e cron stesso per l'esecuzione.
Nella casella Ubuntu 8.04 che sto guardando, /etc/init.d/anacron viene eseguito all'avvio, e di nuovo da cron ogni mattina alle 07:30.
Il README su /usr/share/doc/anacron/README.gz ha un po 'più di informazioni rispetto a quelle contenute nelle manpage.
ESEMPI
Per semplici lavori "giornalieri", "settimanali", "mensili", inserisci una copia o un link simbolico allo script in una delle directory /etc/cron.{daily|weekly|monthly} sopra. Anacron si occuperà di eseguirlo quotidianamente / settimanalmente / mensilmente, e se il tuo computer è spento il giorno in cui gli script "settimanali" verrebbero normalmente eseguiti, li eseguirà alla successiva accensione del computer.
Come altro esempio, supponendo che tu abbia uno script qui: /usr/local/sbin/maint.sh
E desideri eseguirlo ogni tre giorni, la voce standard in / etc / crontab sarebbe simile a questa:
# m h dom mon dow user command
0 0 */3 * * root /usr/local/sbin/maint.sh
Se il computer non era acceso alle 00:00 il 3 del mese, il lavoro non verrebbe eseguito fino al 6.
Per fare in modo che il lavoro venga eseguito il 4 ° quando il computer è spento e "manca" l'esecuzione il 3 °, si dovrebbe usare questo in / etc / anacrontab (non dimenticare di rimuovere la linea da / etc / crontab):
# period delay job-identifier command
3 5 maint-job /usr/local/sbin/maint.sh
Il "ritardo" di "5" sopra indica che Anacron attenderà 5 minuti prima di eseguire questo lavoro. L'idea è di impedire all'anacron di sparare immediatamente al momento dell'avvio.