Este es el sistema crontab en un sistema Gentoo con cronie
instalado, con el anacron
uso de la bandera habilitada:
59 * * * * root [ ! -x /etc/cron.hourly/0anacron ] && rm -f /var/spool/cron/lastrun/cron.hourly
9 3 * * * root [ ! -x /etc/cron.hourly/0anacron ] && rm -f /var/spool/cron/lastrun/cron.daily
19 4 * * 6 root [ ! -x /etc/cron.hourly/0anacron ] && rm -f /var/spool/cron/lastrun/cron.weekly
29 5 1 * * root [ ! -x /etc/cron.hourly/0anacron ] && rm -f /var/spool/cron/lastrun/cron.monthly
*/10 * * * * root [ ! -x /etc/cron.hourly/0anacron ] && { test -x /usr/sbin/run-crons && /usr/sbin/run-crons ; }
Se asegura de que /etc/cron.hourly/0anacron
no está presente antes de ejecutar nada, porque anacron hará los scripts cron. *. Cual es:
# ls -la /etc/cron.hourly/0anacron
-rwxr-x--- 1 root root 448 May 11 23:46 /etc/cron.hourly/0anacron
Ok, entonces, ¿cómo funciona anacron? Su script auxiliar está en cron.hourly, pero nada en cron.hourly se ejecuta si el script auxiliar está presente.
No puedo encontrar ninguna evidencia que alguna vez haya corrido. Es una gallina y un huevo.
Respuestas:
Por lo que yo entiendo, el anacron de cronie es activado por cron ejecutando
/etc/cron.hourly/0anacron
. Pero esto nunca sucede debido a las líneas 1 y 5 de crontab (se ejecutan solo en caso de que 0anacron no sea ejecutable).Arreglé esto cambiando
/etc/crontab
a seguirLa línea 1 se asegura de que los scripts en
/etc/cron.hourly
son ejecutados por cron regular cada hora (sin verificación de archivos lastrun).Comenté la eliminación de archivos lastrun para salidas diarias, semanales y mensuales, ya que se ejecutan a través de anacron (definido en
/etc/anacrontab
).fuente
cron.hourly
para ejecutar, ya que se ejecutará cuando anacron finalmente se ejecuta. Solo ejecutando anacron cada pocos minutos (si no se está ejecutando) lo haría. Supongo que simplemente no terminaron de implementarlo.cron.hourly
o llamada explícita de0anacron
envoltura o directamenteanacron -s
.