Cuando su computadora se apaga (o el demonio cron no se está ejecutando), los trabajos cron no se iniciarán.
Si tiene trabajos que le gustaría ejecutar después del hecho durante esos momentos en que la computadora se apaga, use anacron. Instalado de forma predeterminada, consulte "man anacron", "man anacrontab" o el archivo / etc / anacrontab para obtener más información.
Ubuntu usa anacron por defecto para las entradas de crontab en:
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
dejando que los crontabs restantes sean manejados por el demonio cron principal, específicamente:
/etc/crontab
/etc/cron.d
/var/spool/cron
Notas
Anacron en sí mismo no se ejecuta como un demonio, sino que se basa en los scripts de inicio del sistema y cron para ejecutarse.
En el cuadro Ubuntu 8.04 que estoy viendo, /etc/init.d/anacron se ejecuta en el arranque, y nuevamente por cron cada mañana a las 07:30.
El archivo README en /usr/share/doc/anacron/README.gz tiene un poco más de información que la contenida en las páginas de manual.
EJEMPLOS
Para trabajos simples "diarios", "semanales", "mensuales", coloque una copia o un enlace simbólico al script en uno de los directorios /etc/cron.{daily|weekly|monthly} arriba. Anacron se encargará de ejecutarlo diariamente / semanalmente / mensualmente, y si su computadora está apagada el día en que normalmente se ejecutarían los scripts "semanales", los ejecutará la próxima vez que la computadora esté encendida.
Como otro ejemplo, suponiendo que tenga un script aquí: /usr/local/sbin/maint.sh
Y desea ejecutarlo cada tres días, la entrada estándar en / etc / crontab se vería así:
# m h dom mon dow user command
0 0 */3 * * root /usr/local/sbin/maint.sh
Si su computadora no estaba encendida a las 00:00 del día 3 del mes, el trabajo no se ejecutaría hasta el día 6.
Para que el trabajo se ejecute el 4 cuando la computadora está apagada y "pierde" la ejecución el 3, debe usar esto en / etc / anacrontab (no olvide eliminar la línea de / etc / crontab):
# period delay job-identifier command
3 5 maint-job /usr/local/sbin/maint.sh
El "retraso" de "5" anterior significa que anacron esperará 5 minutos antes de ejecutar este trabajo. La idea es evitar que anacron dispare cosas inmediatamente al momento del arranque.