Por que o anacron não estaria funcionando?

9

Eu tenho um sistema Ubuntu que possui o anacron instalado. No entanto, tenho certeza que não está funcionando. Ele não está executando os comandos no /etc/cron.daily para girar os arquivos syslog (estou usando o sysklog, que possui seu próprio método de log rotativo, não usando logrotate). A última vez que os logs foram rotacionados foi em outubro de 2009. /var/spool/anacron/cron.dailyexiste e o conteúdo é 20091015. AFAIR então tivemos uma queda de energia e tudo foi reiniciado.

Como depurar o anacron? Como posso ver por que não está funcionando? Meu primeiro instinto é procurar /var/log/anacron, mas isso não existe. Como posso corrigi-lo para fazê-lo funcionar novamente?

Rory
fonte

Respostas:

5

Veja o seguinte:

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

A última entrada em um sistema para mim é 4 de novembro de 2008.

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

As entradas variam de 28 de dezembro a 4 de janeiro para mim.

cat /etc/crontab

Você deve ver entradas semelhantes a esta para diariamente, semanalmente e mensalmente:

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

E isso deve mostrar um monte de arquivos:

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

No /etc/cron.dailytenho logrotate e sysklogd.

E se você fizer:

ps auxww | grep [c]ron

você deve ver que o crondaemon está em execução.

Se você fizer:

cat /etc/cron.daily/sysklogd

você deve ver algumas linhas que terminam em || exit 0- verifique se os arquivos existem e, para aqueles com os test -xquais eles são executáveis. Alguns deles não são para mim, pois estou usando o logrotate.

Verifique se o syslogd está em execução:

ps -C syslogd

Veja se o savelog existe e é executável:

ls -l $(type -p savelog)

É tudo o que consigo pensar no momento.

Pausado até novo aviso.
fonte
4
Além disso, lembre-se que anacron é essencialmente apenas Config para cron, por isso não é um daemon
LapTop006
10

Tente executar:

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

Essa linha dirá se o seu novo script está entre os "reconhecidos". Por exemplo, pode ser que o script tenha um nome errado, o sinalizador executivo esteja ausente ou problemas de permissão etc.

Descobri dessa maneira que a ferramenta run-parts (usada pelo cron) não gosta de um sufixo .sh

kjetildm
fonte
2

Eu tenho um ubunutu 8.04 vps (w / plesk) que tinha o anacron instalado, configurado incorretamente e não executando. O apt-getinstall recriou todos os arquivos relevantes.

Depois disso, tudo o que eu precisava fazer era adicionar uma entrada ao crontab de hora em hora para ativar o anacron e fazê-lo funcionar.

o script que eu coloquei no cron.hourly / foi apenas

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

fonte
1

Tente reiniciar o serviço, isso gera um erro?

ptman
fonte
0

Alguns dos crons do Linux são esquisitos. Usamos o cfengine para reiniciar o cron e o cron para assistir ao cfengine para tarefas críticas. Hoje em dia, nenhum dos dois falha notavelmente. Não é como nos anos 90, quando o cron estava travando todos os dias :-)

SAnnukka
fonte
0

Se o nome do script na /etc/cron.{daily,weekly,monthly}/pasta tiver um ponto, ele parece não ser executado. Tente renomeá-lo para algo sem um ponto nele.

Weishaupt
fonte