faz o logrotate rodar apenas na inicialização do serviço

3

Eu gostaria de fazer a rotação do arquivo de log sempre que eu inicio um serviço, mas nunca "automaticamente".

Estou executando um serviço baseado em python que registra em um arquivo de log específico. o serviço (atualmente) não suporta notificação para reabrir seus arquivos de log (por exemplo, USR1 trap). Além disso, o serviço não deve ser reiniciado para a rotação do arquivo de log (está produzindo um fluxo de áudio contínuo, que não deve ser interrompido).

O sistema em que estou rodando não tem um relógio de hardware, então o relógio é reiniciado toda vez que o sistema é inicializado, o que torna as entradas de log originadas de diferentes reinicializações no mesmo arquivo tedioso (recebo a mesma data várias vezes) .

Eu também quero manter o histórico entre várias botas.

Portanto, a ideia é usar a rotação de log em cada inicialização (apenas).

Algo como executar /usr/sbin/logrotate --force /etc/logrotate.d/myservice antes de iniciar o serviço deve funcionar.

Agora, a minha pergunta é, é possível configurar log-rotationg em /etc/logrotate.d/myservice de tal forma, que ele será never executado automaticamente?

Uma solução fácil seria não armazenar meu arquivo logrotate-config em /etc/logrotate.d/ , mas "em outro lugar".

Mas então, eu gostaria que meu usuário pudesse encontrar o logrotate-config em um lugar bem conhecido (para que eles pudessem modificar a configuração à vontade deles).

    
por umläute 07.11.2013 / 13:57

2 respostas

3

Você pode configurar o logrotate para girar um arquivo via copy-truncate, que preserva o arquivo original e não exige que você recrie o arquivo de log.

A sintaxe é:

/tmp/output.log {
        size 1M
        copytruncate
        rotate 4
        compress
}

Isso copiará o arquivo atual e, em seguida, cat /dev/null > file

Dito isso, o logrotate apenas "automaticamente" gira os arquivos em locais específicos, a menos que seja configurado de outra forma. Eu imagino que você esteja registrando seu script em / var / log / httpd, e é por isso que ele está sendo rotacionado automaticamente.

    
por 07.11.2013 / 14:12
0

Por que se preocupar com o logrotate se você não quiser / precisar usá-lo?

Basta girar o arquivo de log do seu script de inicialização.

    
por 07.11.2013 / 14:12