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

0

Plataforma:

RHEL 7
logrotate-3.8.6-7.el7_2.x86_64

Histórico:

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

Problema:

Combinar curingas, a opção "missingok" e "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
}

Vejo que há uma correção de longa data no link que corrige o problema com curinga e missingok, mas alguém viu ou corrigiu o problema com o olddir?

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

    
por sastorsl 30.03.2016 / 10:19

2 respostas

0

Upstream fixo: link

Citação:

Fix 'olddir' usage with wildcard in the middle of path in the pattern…
… definition when the pattern did not match any log file.
    
por 30.03.2016 / 10:47
0

Eu encontrei 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 reclamará:

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

@sastorsl como você faz então?

Meu logrotate 3.7.8.

Parece que foi corrigido em 3.11.0.

    
por 09.12.2016 / 08:51