Fazer o login em log de todos os registros em um diretório causa duplicação de data

0

Eu tenho uma configuração logrotate que se parece com isso:

/var/log/update-job/*.log {
    daily
    rotate 7
    compress
    delaycompress
    size 0k
    missingok
    copytruncate
    notifempty
    dateext
    dateformat %Y%m%d.
    extension log
    su root syslog
}

Em teoria, o que eu gostaria de fazer é, ao encontrar um arquivo de log chamado thelog.log , girá-lo para thelog.20150622.log e no dia seguinte para thelog.20150623.log e assim por diante. Eu quero isso para vários arquivos de log com nomes de arquivos arbitrários, por exemplo, pode haver thelog.log e anotherlog.log dentro da pasta ao mesmo tempo.

O que eu realmente vejo é:

thelog.20150622.20150623.log
thelog.20150623.log
thelog.log
anotherlog.20150622.20150623.log
anotherlog.20150623.log
anotherlog.log

O motivo é que o padrão global ( /var/log/update-job/*.log ) corresponde aos arquivos girados também. Eu pensei que o logrotate era inteligente o suficiente para usar a diretiva dateformat para descobrir que um arquivo é girado, mas aparentemente esse não é o caso.

Alguma idéia de como resolver isso?

Uma solução alternativa pode ser remover delaycompress , para que os arquivos sejam compactados para .log.gz após a rotação, para que eles não sejam mais correspondidos pelo padrão glob. Eu gostaria de encontrar uma solução menos hacky, no entanto.

    
por FrontierPsycho 22.06.2015 / 14:07

0 respostas