De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Compressão de arquivos de log

Colaboração: Herbert G. Fischer

Data de Publicação: 06 de Maio de 2004

De vez em quando passamos por situações em que o armazenamento é mais importante que a capacidade de processamento e que precisamos registrar muitas informações em um curto prazo de tempo, fazendo com que os arquivos de log fiquem monumentais.

Eu me deparei com algo assim, num script de sincronia entre servidores web que fiz no meu trabalho. O script precisa rodar de 1 em 1 minuto, gerando um log razoavelmente espaçoso.

Com as ferramentas padrões de compactação do Linux, gzip e bzip2, descobri que é possível algo tecnicamente estranho. Concatenar pedaços de texto compactado num mesmo arquivo e ao descompactar, obter o texto na forma correta.

Na prática:

  % echo 123 | gzip -f >> teste.gz
  % echo 456 | gzip -f >> teste.gz
  % echo 789 | gzip -f >> teste.gz
  % echo 101 | gzip -f >> teste.gz
  % gunzip teste.gz
  % cat teste
  123
  456
  789
  101

Com bzip2 é a mesma coisa, exceto que os parâmetros são diferentes.

  echo 123 | bzip2 -z >> teste.bz2
  echo 456 | bzip2 -z >> teste.bz2
  echo 789 | bzip2 -z >> teste.bz2
  echo 101 | bzip2 -z >> teste.bz2
  
  bunzip2 teste.bz2

Bom... diante deste recurso, dentro do script, eu mando as linhas de log da execução atual para um arquivo temporário, compacto ele e concateno no arquivo definitivo. Depois apago o arquivo temporário. Fazendo assim, eu elimino um gargalo de chamadas aos compactadores.

Ahhh... já ia me esquecendo... Prefira usar o GZIP ao invés do BZIP2 caso seu processador esteja no gargalo. O BZIP2 compacta bem mais no uso padrão, mas também usa bem mais processamento.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Herbert G. Fischer