Como eu configuro o logrotate para não excluir meus arquivos de log após a rotação?

20

Existe uma maneira de fazer isso?

    
por Guilherme 05.08.2009 / 06:32

3 respostas

28

No seu logrotate.conf (ou no arquivo logrotate.d equivalente), altere a linha que diz "

rotate 10

(seu número pode ser diferente) para um número maior. Isso dirá para manter muitos dias de registros. Você pode fazer 36500, o que duraria 100 anos.

    
por 05.08.2009 / 06:45
0

Estou procurando por isso para fazer a rotação dos meus backups de banco de dados diariamente, semanalmente e mensalmente; então eu rotaciono o arquivo diariamente, mas mantenho o arquivo para fazer a rotação semanal, e o mesmo para a rotação anual.

Use a opção de cópia. Do manual:

copy

cópia Faça uma cópia do arquivo de log, mas não altere o original. Essa opção pode ser usada, por exemplo, para criar um instantâneo do arquivo de log atual ou quando algum outro utilitário precisar truncar ou analisar o arquivo. Quando essa opção é usada, a opção de criação não terá efeito, pois o arquivo de log antigo permanece no lugar.

    
por 22.11.2013 / 11:32
-2

Deixando de lado o ponto em que a rotação envolve a exclusão ...; -)

Parece que você pode simplesmente adicionar a palavra 'copy' ao arquivo apropriado (provavelmente em /etc/logrotate.d). Por exemplo, um script apache2 logrotate ficaria assim:

/var/log/apache2/*.log {
    weekly
    missingok
    rotate 52
    compress
    delaycompress
    notifempty
    copy
    sharedscripts
    postrotate
        if [ -f "'. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}'" ]; then
            /etc/init.d/apache2 reload > /dev/null
        fi
    endscript
}

Tente isso e veja se ele faz o que você quer.

    
por 05.08.2009 / 06:45