Eu tenho duas caixas Debian diferentes (i386 x AMD) e tenho o mesmo problema. logrotate não rodará meus logs automaticamente. Funciona bem quando eu forçá-lo manualmente como
/usr/sbin/logrotate -f /etc/logrotate.conf
mas não está bem para mim.
As configurações não foram modificadas (pelo menos eu não as modifiquei), a caixa AMD é uma instalação nova e ainda não faz o seu trabalho.
Se você notou um problema semelhante, por favor me ajude.
Atualização (alguma saída do servidor):
logrotate -d
http://pastebin.com/e6AshtGq
ls -l /var/log
http://pastebin.com/Y2A4Li59
cat /etc/logrotate.conf
http://pastebin.com/1h7Uwctr
ls -l /etc/logrotate.d
http://pastebin.com/NvUAeszM
debian
logrotate
debian-squeeze
fabrik
fonte
fonte
...rsyslogd was HUPed...
não ter certeza sobre isso significa alguma coisa.cron.daily
mas a rotação não acontece.Respostas:
Verifique se o seu logrotate está sendo executado pelo cron.
Editar:
Na discussão do comentário - parece que o cron não está funcionando corretamente. Eu tinha um cronjob no meu crontab sem usuário, mas isso só veio à tona quando reiniciei o daemon cron
Meus sistemas ubuntu e centos têm um
/etc/cron.daily/logrotate
arquivo cujo conteúdo éMeu / etc / crontab possui a seguinte linha para executar as tarefas diárias
fonte
ps -ef | grep cron| grep -v grep
? Adicione um eco ao início do /etc/cron.daily/logrotateecho "logrotate runing" >>/tmp/logrotate.out
e veja se ele é criado.cron
está instalado e funcionando, mas não executa o trabalho diário de rotação de log. Se eu executar/etc/cron.daily/logrotate
manualmente, ele gira meus logs,/tmp/logrotate.out
também gravados./etc/cron.daily/logrotate
então eu adicionei um-f
parâmetro para forçar a rotação ainda hoje de manhã meus logs não foram girados.Eu tive um problema semelhante, mas
crontab
estava funcionando e para alguns diretórios de loglogrotate
funcionou, mas para alguns não funcionou. Quando tentei executar o logrotate manualmente, recebi algumas mensagens de erro.Todos os
*.1.gz
arquivos tinham um tamanho 0. Excluí manualmente todos os arquivos mencionados na mensagem de erro, executeisudo /usr/sbin/logrotate -f /etc/logrotate.conf
novamente e funcionou.Eu também deveria compartilhar essa solução alternativa aqui, pois esse foi o primeiro resultado de pesquisa que surgiu quando eu estava pesquisando o problema, mas a solução sugerida não funcionou para mim. Talvez isso ajude também outras pessoas que estão na mesma situação que eu.
fonte
Eu sei eu sei. Fio de 5 anos.
Apenas pensei que, se ainda aparecer bastante alto nas pesquisas, contribuirei e darei a minha solução para o problema que encontrei. Minhas tarefas de rotação de log não foram tratadas automaticamente em um dos meus servidores. Forçar a rotação funcionou bem. Encontrei uma solução depois de executar manualmente o comando de rotação diária:
Então vi o erro que impedia o logro de disparar trabalhos:
Sim, simples assim. Eu tinha dois arquivos definindo os mesmos logs para rotacionar (iptraf e iptraf-ng). A remoção de uma das definições conflitantes de rotação do log para o iptraf foi suficiente.
Outro problema pode ser um arquivo / etc / crontab danificado. Ou seja, verifique dupla ou triplamente a sintaxe nesse arquivo, pois ele não fornece nenhuma saída que eu possa encontrar se a sintaxe estiver incorreta. Sai silenciosamente após falha na validação da sintaxe.
Espero que isso economize tempo para alguém.
fonte
OK, eu tive um problema semelhante.
"logs não estão sendo girados?" mas executando logrotate manualmente (ou executando
/etc/cron.daily
oe ele os rotaciona perfeitamente).Parece que o cron "não está sendo executado" diariamente. Ímpar. Então, procurei no arquivo de log em que o cron gera seus dados e vi "O token de autenticação não é mais válido; é necessário um novo" para corrigir esse problema específico, veja aqui
fonte
Eu já vi isso acontecer com o tempo, à medida que os serviços mudam, e as opções usadas na rotação do log foram redigidas, causando falha na rotação do log todos os dias.
Para se ter uma idéia, a última correção envolveu a opção notifyempty no arquivo de logrotate do apache não sendo mais válido, fazendo com que o logrotate parasse completamente.
Embora isso tenha sido abordado até certo ponto, gostaria de compartilhar o processo que passo ao rastrear esses problemas:
#/usr/sbin/logrotate -f /etc/logrotate.conf
para procurar erros (por exemplo, postfix: 3 'missingok'.)O número do arquivo e da linha a que se refere é o arquivo na pasta logrotate.d.
# vi /etc/logrotate.d/postfix
:, remova a opção que está causando o problema e salve o arquivo.Há momentos em que o primeiro passo simplesmente produz algo, mas você sabe que há um problema. Como tudo começou porque os arquivos de log de um serviço não estavam sendo rotacionados, você pode assistir ao processo de rotação do log procurando esse serviço específico para ver o que está impedindo a rotação. Para fazer isso, adicione a tag detalhada ao seu comando logrotate e observe o que acontece nessa pasta (se houver).
fonte
Verifique se há parâmetros de configuração de rotação de log conflitantes !!
Eu estava lutando com esse problema e finalmente li bastante a documentação do logrotate, encontrei aqui uma documentação útil .
Eu havia especificado um parâmetro Size e um parâmetro Rotation Interval , quando na verdade não queria nenhum. Eu queria que minhas rotações ocorressem exatamente quando elas foram agendadas no cron.
Portanto, livre-se do parâmetro Rotation Interval and Size . Então você terá uma rotação toda vez que o logrotate for chamado sem precisar forçá-lo.
EDIT : OK, mesmo isso não funciona totalmente! Se o arquivo de log estiver abaixo de um determinado limite, os logs não serão rotacionados. Portanto, quando eu executava um trabalho cron que girava a cada 2 minutos, ele não girava os logs.
Você pode ver informações detalhadas sobre depuração se executar
logrotate -d
. Isso fornece algumas informações de depuração muito úteis.fonte