Como faço para renomear e compactar logs antigos eficientemente depois de ativar a compactação no logrotate?

0

Recentemente, ativei a compactação no logrotate.conf em vários sistemas. Registros descompactados antigos ainda permanecem com sua numeração antiga. Eu estou olhando para executar um script para colocar esses logs antigos onde eles seriam numericamente na rotação se a compactação não tivesse sido ativada. Esses registros incluiriam messages , boot.log , spooler e outros.

[user@test ~]$ ls -ltr /var/log/messages*
-rw------- 1 root root 283380 Jan 22 03:49 /var/log/messages.4
-rw------- 1 root root 212641 Jan 29 03:59 /var/log/messages.3
-rw------- 1 root root 278964 Feb  5 04:01 /var/log/messages.2
-rw------- 1 root root   7828 Feb 16 04:02 /var/log/messages.7.gz
-rw------- 1 root root  12417 Feb 17 04:02 /var/log/messages.6.gz
-rw------- 1 root root   2289 Feb 18 04:02 /var/log/messages.5.gz
-rw------- 1 root root   2135 Feb 19 04:02 /var/log/messages.4.gz
-rw------- 1 root root   2138 Feb 20 04:02 /var/log/messages.3.gz
-rw------- 1 root root   2403 Feb 21 04:02 /var/log/messages.2.gz
-rw------- 1 root root   2339 Feb 22 04:02 /var/log/messages.1.gz
-rw------- 1 root root   8496 Feb 22 10:19 /var/log/messages

Se eu fosse renomear manualmente, eu faria um mv messages.2 messages.8.tmp para cada log para que nenhum arquivo chamado atualmente messages.8 fosse sobrescrito. Depois que todos os arquivos forem renomeados, eu faria um mv messages.8.tmp messages.8 seguido por um gzip -9 messages.8 .

Eu brinquei com loops for e while e sed, mas ainda sou um criador de scripts novato.

Os números dos registros descompactados mais recentes e mais antigos variam de sistema para sistema.

No futuro, eu comprimir manualmente os logs mais antigos antes de ativar a compactação no logrotate.conf.

Em resumo, duas perguntas:

  1. Existe uma maneira de fazer o logrotate.conf reconhecer esses arquivos antigos e compactá-los por si só?
  2. Qual é a melhor maneira de rotear a rotação manual para onde os arquivos de log antigos seriam sequencialmente, seguidos pela compactação?
por Linux2012 22.02.2012 / 16:49

2 respostas

1

Tanto quanto sei, o logrotate não pode colocar arquivos antigos em seu lugar. Então você precisa fazer isso manualmente / por um pequeno script.

Por favor, observe que, dependendo da sua configuração, o logrotate gira o arquivo de log antigo apenas por tempo limitado e, em seguida, os exclui. Portanto, a restauração de arquivos de backup antigos pode ser inútil até que você altere sua configuração de logrotate para que nunca exclua logs antigos (variável de configuração rotate ).

    
por 22.02.2012 / 17:05
0

A rotação de log não pode, mas gzip messages.? lidará com isso para você.

    
por 13.03.2014 / 01:08