Logrotate não está pegando ou agindo no novo arquivo de configuração

1

Eu tinha um arquivo de configuração logrotate configurado para um log (vamos chamá-lo Log1 ). Está funcionando bem e o log está girando todos os dias conforme o esperado.

Ontem eu clonei esta configuração e a modifiquei para mais três arquivos de log Log2, Log3 e Log4 . Esses arquivos de log já existem no disco e estão sendo ativamente gravados em.

No entanto, quando marcado hoje, os três arquivos de log não foram girados. Eu esperava que eles rodassem junto com o primeiro arquivo de log Log1 . Mas apenas Log1 foi girado, e o restante ( Log2 para Log4 ) não foi tocado.

Se eu colocar novos arquivos de configuração para logrotate , eu tenho que executar um comando para "ativá-los", então logrotate começará a rotacionar os arquivos de log? Eu acho que é uma cron trabalho rodando às 4 da manhã todos os dias, ele irá automaticamente pegar os novos arquivos e rodar os arquivos. Existe algum tipo de ativação manual necessária?

O que é estranho é que o arquivo /var/lib/logrotate.status parece mostrar (com a data de hoje) que todos os quatro arquivos de log foram observados por logrotate . Então, por que logrotate pulou os três novos arquivos de log que obviamente precisam ser rotacionados?

Arquivo de configuração:

/path/to/Log1.log {
    compress
    compresscmd /usr/bin/bzip2
    compressext .bz2
    compressoptions -9
    copytruncate
    daily
    dateext
    delaycompress
    extension .log
    notifempty
    missingok
    nomail
    olddir Log1
    rotate 100
    maxage 60
}

Não deve haver nada de errado com o arquivo de configuração, pois funciona bem para Log1 . O diretório olddir já está criado para todos os registros.

Ao executar logrotate -d (modo de depuração), ele diz log does not need rotating para todos os quatro logs. Eu entendo que isso está correto para Log1 já que ele já foi girado, mas e os outros?

Isso tem algo a ver com after 1 days ? O logrotate marca primeiro a data do novo arquivo no arquivo logrotate.status , então só gira quando um dia já passou desde a última marca? Como o arquivo de status é usado por logrotate ?

    
por ADTC 27.02.2014 / 08:22

1 resposta

0

Parece que logrotate funciona usando o arquivo logrotate.status . Nesse arquivo de status, a data de modificação do log está marcada. A rotação só entra em ação uma vez que a data modificada do arquivo de log é alterada da data marcada por um determinado delta (geralmente 1 dia).

O arquivo de status é usado por logrotate para evitar a rotação de um arquivo de log várias vezes antes que o tempo delta tenha passado. Embora eu ache que não há problema em começar a girar um arquivo que ainda não está marcado no arquivo de status e simplesmente marcá-lo depois, não sei por que logrotate não adotou essa estratégia.

Se alguém fornecer uma resposta mais substancial e detalhada descrevendo o acima e explicando as razões para isso, aceitarei sua resposta.

    
por 28.02.2014 / 04:08