Por que o anacron não estaria rodando?

8

Eu tenho um sistema Ubuntu que tem o anacron instalado. No entanto, tenho certeza que não está funcionando. Ele não está executando os comandos em /etc/cron.daily para rotacionar 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.daily existe e o conteúdo é 20091015 . AFAIR tivemos uma queda de energia e tudo foi reinicializado.

Como posso depurar anacron? Como posso ver porque não está funcionando? Meu primeiro instinto é procurar /var/log/anacron , mas isso não está lá. Como posso corrigi-lo para que seja executado novamente?

    
por Rory 05.01.2010 / 11:09

6 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 inscrições variam de 28 de dezembro a 4 de janeiro para mim.

cat /etc/crontab

Você deve ver entradas semelhantes a isso para diário, semanal e mensal:

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

E isso deve mostrar vários arquivos:

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

Em /etc/cron.daily eu tenho logrotate e sysklogd.

E se você fizer isso:

ps auxww | grep [c]ron

você deve ver que o daemon cron está sendo executado.

Se você fizer isso:

cat /etc/cron.daily/sysklogd

você deve ver algumas linhas que terminam em || exit 0 - verifique se os arquivos existem e, para aqueles com test -x , que eles são executáveis. Alguns deles não servem para mim já que 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)

Isso é tudo em que consigo pensar no momento.

    
por 05.01.2010 / 12:09
9

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 exec esteja faltando ou questões de permisso, etc.

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

    
por 08.09.2012 / 16:27
2

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

Depois disso, tudo que eu tive que fazer foi adicionar uma entrada para o crontab por hora para acionar o anacron e fazê-lo funcionar.

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

#!bin/bash
/path/to/anacron -s 
    
por 05.01.2010 / 14:23
1

Tente reiniciar o serviço. Isso causa um erro?

    
por 05.01.2010 / 12:18
0

Alguns dos Linux são esquisitos. Usamos o cfengine para reiniciar o cron e o cron para assistir ao cfengine para coisas de missão crítica. Nos dias de hoje, nenhum deles cai notavelmente embora. Não como nos anos 90, quando o cron estava travando todos os dias: -)

    
por 30.01.2010 / 10:09
0

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

    
por 16.11.2013 / 22:32