logrotate não irá rodar meus logs automaticamente

7

Eu tenho duas caixas Debian diferentes (i386 v AMD) e tenho o mesmo problema. O logrotate não irá rodar meus logs automaticamente. Funciona bem quando eu forço manualmente como

/usr/sbin/logrotate -f /etc/logrotate.conf

mas não está tudo bem para mim.

As configurações não foram modificadas (pelo menos eu não as modifiquei), a caixa da AMD é uma instalação nova, mas não funciona.

Se você notou um problema semelhante, por favor me ajude.

Atualização (alguma saída do servidor):

logrotate -d link

ls -l /var/log link

cat /etc/logrotate.conf link

ls -l /etc/logrotate.d link

    
por fabrik 17.08.2011 / 14:13

5 respostas

8

Verifique se o seu logrotate está sendo executado pelo cron.

Editar:

Na discussão de comentários, parece que o cron não está funcionando corretamente. Eu tive um cronjob no meu crontab sem usuário, mas isso só veio à tona quando reiniciei o daemon do cron

Meus sistemas ubuntu e centos possuem um arquivo /etc/cron.daily/logrotate cujo conteúdo é

#!/bin/sh

test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.conf

Meu / etc / crontab tem a seguinte linha para executar as tarefas diárias

25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily 
    
por 19.08.2011 / 20:37
10

Eu tive um problema semelhante, mas crontab estava funcionando e, para alguns dos diretórios de log, logrotate funcionou, mas para alguns, não. Quando tentei executar o logrotate manualmente, recebi algumas mensagens de erro.

user@server:/var/log/apache2$ sudo /usr/sbin/logrotate -f /etc/logrotate.conf
error: error creating output file /var/log/apache2/access.log.1.gz: File exists
error: error creating output file /var/log/apache2/error.log.1.gz: File exists
...

Todos os arquivos *.1.gz tinham um tamanho de 0. Excluí todos os arquivos mencionados na mensagem de erro, executei sudo /usr/sbin/logrotate -f /etc/logrotate.conf novamente e funcionou.

Eu só devo compartilhar essa solução alternativa aqui também, já que esse foi o primeiro resultado da pesquisa que surgiu quando eu estava procurando o problema, mas a solução sugerida não funcionou para mim. Talvez isso ajude os outros também que estão na mesma situação que eu.

    
por 17.11.2015 / 15:57
1

OK, tive um problema semelhante.

"registros não estão sendo rotacionados?" mas executando o logrotate manualmente (ou executando o /etc/cron.daily e ele os rotaciona muito bem.

Portanto, parece que o cron apenas "não está em execução" diariamente. Ímpar. Então eu olhei no arquivo de log onde o cron envia seus dados e vi "O token de autenticação não é Para corrigir esse problema específico, consulte aqui

    
por 01.04.2016 / 14:14
1

Eu tenho visto isso acontecer com o passar do tempo enquanto os serviços mudam, e as opções usadas no logrotate foram editadas, fazendo com que o logrotate falhe a cada dia.

Para se ter uma idéia, a última correção envolveu a opção notifyempty no arquivo apache logrotate não sendo mais válida, fazendo com que o logrotate parasse todos juntos.

Embora isso tenha sido abordado até certo ponto, gostaria de compartilhar o processo pelo qual acompanho esses problemas:

  1. comece correndo #/usr/sbin/logrotate -f /etc/logrotate.conf para procurar por quaisquer erros (por exemplo, postfix: 3 'missingok'.)
    O número do arquivo e da linha a que ele está se referindo é o arquivo na pasta logrotate.d. / em>
  2. Edite o arquivo em questão: # vi /etc/logrotate.d/postfix , remova a opção que está causando o problema e salve o arquivo.
  3. Repita a primeira etapa para ver se a rotação funciona ou se há outros problemas.

Há momentos em que o primeiro passo simplesmente gera resultados, mas você sabe que há um problema. Como essa coisa toda começou porque os arquivos de log de um serviço não estavam sendo rotacionados, você pode observar o processo de logrotate procurando por esse serviço específico para ver o que está impedindo a rotação. Para fazer isso, adicione a tag verbose ao seu comando logrotate e observe o que acontece nessa pasta (se houver alguma coisa).

    
por 08.12.2016 / 21:46
1

Eu sei, eu sei. Fio de 5 anos de idade.

Pensei que, se ainda surgisse nas buscas, eu contribuiria e daria minha solução para o problema que encontrei. Minhas tarefas de logrotate não foram tratadas automaticamente em um dos meus servidores. Forçar a rotação funcionou bem. Eu encontrei uma solução depois de executar o comando de rotação diária com a mão:

( cd / && run-parts --report /etc/cron.daily )

Depois, vi o erro que impedia que jobs logrorate fossem acionados:

/etc/cron.daily/logrotate:
error: iptraf-ng:2 duplicate log entry for /var/log/iptraf/*.log

Sim, simples assim. Eu tinha dois arquivos definindo os mesmos logs para girar (iptraf e iptraf-ng). Apenas remover uma das definições de logrotate conflitantes para o iptraf resolveu o problema.

rm /etc/logrotate.d/iptraf

Outro problema pode ser um arquivo botched / etc / crontab. Significado duplo ou triplo verificar a sintaxe nesse arquivo, pois não fornece qualquer saída que eu poderia encontrar se a sintaxe está errada. Silenciosamente sai após validação de sintaxe falhada.

Espero que isso economize alguém algum tempo.

    
por 26.12.2016 / 14:11