O curinga Logrotate falha em arquivos ausentes com “missingok” E “olddir”

0

Plataforma:

RHEL 7
logrotate-3.8.6-7.el7_2.x86_64

Fundo:

Em um servidor RedHat Linux, tenho um grande conjunto de servidores de aplicativos em execução e desejo uma rotina de logrotate uniforme para limpar os arquivos de log. O uso de curingas é fundamental, por isso não preciso manter uma lista constantemente crescente e decrescente.

Questão:

Combinando curingas, a opção "missingok" AND "olddir" parece não funcionar. Quando eu defino um padrão para arquivos de log de depuração - que podem ou não existir - e só uso "missingok", tudo está bem. Se eu adicionar a opção "olddir", ela falhará com:

# logrotate -d /etc/logrotate.d/foobar
reading config file /etc/logrotate.d/foobar
olddir is now old_logs
error: /etc/logrotate.d/foobar:28 error verifying log file path /srv/www/servers/*/logs: No such file or directory
removing last 1 log configs

O arquivo de configuração:

/srv/www/servers/*/logs/*_foobar.txt
{
  daily
  olddir old_logs
  missingok
}

Eu vejo que tem havido uma correção de longa data em http://rhn.redhat.com/errata/RHBA-2008-0703.html consertando o problema com curingas e missingok, mas alguém viu ou corrigiu o problema com o olddir?

Eu estou pensando em pular olddir e usar postrotate + find / mv, mas eu gostaria de não ter que fazer isso.

sastorsl
fonte

Respostas:

0

Eu conheci o mesmo problema.

Assista o diretório com /var/logs/*/*/*.log e use o "missingok" e "olddir" juntos.

Se não houver nenhum log nesse diretório, ele irá reclamar:

erro ao verificar o caminho do arquivo de log / var / logs / * / *: Nenhum arquivo ou diretório

@sastorsl como você faz então?

Mine logrotate 3.7.8.

Parece que foi corrigido em 3.11.0.

zjalex
fonte