Como renomeio e compresso os logs antigos com eficiência após ativar a compactação na rotação do log?


0

Recentemente, ativei a compactação no logrotate.conf em vários sistemas. Os logs descompactados antigos ainda permanecem com a numeração antiga. Estou procurando executar um script para colocar esses logs antigos onde estariam numericamente na rotação se a compactação não tivesse sido ativada. Esses logs incluem 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, faria um mv messages.2 messages.8.tmppara cada log para que nenhum arquivo atualmente nomeado messages.8 seja substituído. Depois que todos os arquivos foram renomeados, eu faria um mv messages.8.tmp messages.8seguido de um gzip -9 messages.8.

Eu brinquei com loops for e while e sed, mas ainda sou um roteirista novato.

Os números dos logs não compactados mais recentes e mais antigos variam de sistema para sistema.

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

Em resumo, duas perguntas:

  1. Existe uma maneira de o logrotate.conf reconhecer esses arquivos mais antigos e compactá-los por si só?
  2. Qual é a melhor maneira de script a rotação manual para onde os arquivos de log antigos seriam seqüencialmente, seguidos de compactação?

Entendo que não há como fazer isso com o logrotate. O que estou perguntando agora é a melhor maneira de escrever scripts para renomear e compactar gzip desses logs para onde eles estariam na sequência. Eu tenho que fazer isso em um número substancial de sistemas; portanto, se eu puder executar um único script, isso poupará muito tempo.
Linux2012

Respostas:


1

Até onde eu sei, o logrotate não pode colocar arquivos antigos em seus lugares. Então você precisa fazer isso manualmente / por um pequeno script.

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


Como o @jofel disse, apenas feche-os. O Gzip adicionará a extensão .gz por padrão, e é isso que o logrotate procurará.
Magellan

0

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.