Planifico algunas tareas usando crontab.
¿Qué sucederá si mi computadora se apaga o apaga durante el tiempo en que cron estaba programado para hacer algo?
¿Se ejecuta cada trabajo cron perdido después de encender la computadora o se ignoran los trabajos perdidos para ese día? Si los trabajos perdidos no se reanudan, ¿hay alguna forma de configurar cron de manera que ejecute las tareas perdidas después de que la computadora se vuelva a encender?
Respuestas:
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:
dejando que los crontabs restantes sean manejados por el demonio cron principal, específicamente:
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í:
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):
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.
fuente
anacron
, instale elcronie-anacron
paquete.Esto depende del planificador cron que use. El demonio básico, vanilla cron no ejecutará tareas que se perdieron debido al tiempo de inactividad del sistema. Sin embargo, hay otros programadores cron diseñados específicamente para esta situación que lo harán por usted. Los dos ejemplos más comunes son anacron y fcron .
fuente
Las tareas programadas mientras la computadora está apagada no se ejecutarán cuando la computadora se vuelva a encender
fuente
Si se apaga mientras se ejecutan los trabajos cron, el sistema se apaga y los trabajos cron se detienen (o no se ejecutan).
Una alternativa que puede consultar es anacron.
fuente
Realmente depende del cron deamon que estés ejecutando. Vixie-cron simplemente omitirá los cronjobs que se perdieron. fcron ejecutará crons perdidos tan pronto como pueda. IIRC también se basa en vixie-cron, por lo que si eso es lo que está buscando, puede consultar fcron.
fuente