¿Por qué Anacron no estaría funcionando?

9

Tengo un sistema Ubuntu que tiene instalado anacron. Sin embargo, estoy bastante seguro de que no se está ejecutando. No está ejecutando los comandos en /etc/cron.daily para rotar los archivos syslog (estoy usando sysklog, que tiene su propio método de registro giratorio, no estoy usando logrotate). La última vez que se rotaron los registros fue en octubre de 2009. /var/spool/anacron/cron.dailyexiste y el contenido es 20091015. AFAIR tuvimos un corte de energía en ese momento, y todo se reinició.

¿Cómo puedo depurar anacron? ¿Cómo puedo ver por qué no se está ejecutando? Mi primer instinto es buscar /var/log/anacron, pero eso no está ahí. ¿Cómo puedo solucionarlo para que vuelva a funcionar?

Rory
fuente

Respuestas:

5

Mira lo siguiente:

zgrep anacron /var/log/cron.log.{9..1}* /var/log/cron.log | less

La última entrada en un sistema para mí es el 4 de noviembre de 2008.

zgrep anacron /var/log/syslog.{9..1}* /var/log/syslog | less

Las entradas van del 28 de diciembre al 4 de enero para mí.

cat /etc/crontab

Debería ver entradas similares a esta para diario, semanal y mensual:

25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

Y esto debería mostrar un montón de archivos:

ls -l /etc/cron.{daily,weekly,monthly}

En /etc/cron.dailytengo logrotate y sysklogd.

Y si lo haces:

ps auxww | grep [c]ron

deberías ver que el crondemonio se está ejecutando.

Si lo haces:

cat /etc/cron.daily/sysklogd

debería ver algunas líneas que terminan en || exit 0- verifique para asegurarse de que los archivos existen y, para aquellos con los test -xque son ejecutables. Algunos de ellos no lo hacen para mí, ya que estoy usando logrotate.

Verifique si syslogd se está ejecutando:

ps -C syslogd

Vea si savelog existe y es ejecutable:

ls -l $(type -p savelog)

Eso es todo lo que puedo pensar en este momento.

Pausado hasta nuevo aviso.
fuente
44
Además, recuerde que anacron es esencialmente solo configuración para cron, por lo que no es un demonio
LapTop006
10

Intenta correr:

sudo run-parts --test /etc/cron.daily

Esa línea le dirá si su nuevo script está entre los "reconocidos". Por ejemplo, podría ser que el script tiene un nombre incorrecto, falta el indicador de ejecución o problemas de permisos, etc.

Descubrí de esta manera que a la herramienta run-parts (utilizada por cron) no le gusta un sufijo .sh

kjetildm
fuente
2

Tengo un ubunutu 8.04 vps (w / plesk) que tenía un anacron instalado, mal configurado y no ejecutándose. apt-get reinstall recreó todos los archivos relevantes.

Después de lo cual, todo lo que tenía que hacer era agregar una entrada al crontab por hora para activar anacron y hacer que funcionara.

el script que puse en cron.hourly / era solo

#!bin/bash
/path/to/anacron -s 

fuente
1

Intente reiniciar el servicio, ¿eso le da un error?

ptman
fuente
0

Algunos de los cron de Linux son escamosos. Usamos cfengine para reiniciar cron y cron para ver cfengine en busca de cosas de misión crítica. Sin embargo, en estos días, ninguno se estrella notablemente. No como en los años 90 cuando el cron se estrellaba todos los días :-)

SAnnukka
fuente
0

Si el nombre del script en la /etc/cron.{daily,weekly,monthly}/carpeta tiene un punto, parece que no se ejecuta. Intenta cambiarle el nombre a algo sin un punto.

Weishaupt
fuente