http://www.zago.eti.br/script/compactar.txt Dicas, indicações e mensagens com dicas pra compactar arquivos. Use CTRL+F para refinar a pesquisa. Linha de: **************** separa mensagens ou tópicos. ******************************************************** Zago http://www.zago.eti.br/menu.html FAQ e artigos sobre Linux ******************************************************** De:  Dicas-L-Owner@unicamp.br Assunto:  [Dicas-L] Comprimindo logs ao mesmo tempo em que são gerados Data:  Thu, 6 May 2004 02:47:20 -0300 -------------------------------------------------------------------- Comente esta dica em http://www.Dicas-l.com.br/dicas-l/20040506.php -------------------------------------------------------------------- Paradoxos do Poder http://www.idph.net/artigos/idph/paradoxos.shtml ---------------------------------------------------------------------------------------   Comprimindo logs ao mesmo tempo em que são gerados   ================================================== Colaboração: Herbert G. Fischer 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. -----------------------------------------------------------   CENAPAD-SP: Oportunidade de estagio   =================================== O CENAPAD-SP (Centro Nacional de Processamento de Alto Desempenho em Sao Paulo, localizado na UNICAMP), está selecionando um estagiario para trabalhar na area de Suporte Tecnico. Bolsa de R$ 902,00 por mes, para carga horaria de 40 horas semanais a serem cumpridas no periodo de 8h30 às 17h30.         Pre-requisitos :         ================ Cursando Ciencia da Computacao, Engenharia de Computacao, Analise de Sistemas e afins, em Universidade na regiao de Campinas         Conhecimentos desejaveis :         ==========================  - Ambientes : Unix/Linux, Redes Windows (NT, 2000, 2000 Server, etc)  - Linguagens de programacao : C, shell scripts, Java, SQL  - Ferramentas Web (html, PHP, javascript, etc)  - Aplicativos graficos (Gimp, MS Publisher, etc)  - Ingles para leitura Enviar curriculo ate' 12/05/2004 para : estagio@cenapad.unicamp.br -----------------------------------------------------------         Rewards of Heaven         ================= When Bill Gates died, he went up to Heaven, where St. Peter showed him to his house - a beautiful 20 room house, with grounds and a tennis court. Bill Gates was pleased, and spent many months enjoying the amenities of Heaven. One day, he was enjoying one of Heaven's many fine parks, when he ran into a man dressed in a fine tailored suit. "That is a nice suit, my friend," said Gates. "Where did you get it?" "Actually," the man replied, "I was given a hundred of these when I got here. I've been treated really well. I got a mansion on a hill overlooking a beautiful hill, with a huge five-hundred acre estate, a golf course, and three Rolls Royces." "Were you a Pope, or a doctor healing the sick?", asked Gates. "No," said his new friend. "Actually, I was the captain of the Titanic." Hearing this made Gates so angry that he immediately stalked off to find St. Peter. Cornering Peter, he told him about the man he had just met, saying, "How could you give me a paltry new house, while you're showering new cars, a mansion, and fine suits on the Captain of the Titanic? I invented the Windows operating system! Why does he deserve better??!!!!" "Yes, but we use Windows," replied Peter, "and the Titanic only crashed once." -------------------------------------------------------------------- HTTP - Guia de Consulta Rápida http://novateceditora.com.br/guias/http/ -------------------------------------------------------------------- As mensagens da lista Dicas-L são veiculadas diariamente para 24731 assinantes.        Todas as mensagens da Dicas-L ficam armazenadas em                http://www.Dicas-l.com.br. A redistribuição desta e outras mensagens da lista Dicas-L pode ser feita livremente, deste que o conteúdo, inclusive esta nota, não sejam modificados. --------------------------------------------------------------- ******************************************************** De:  Dicas-L-Owner@unicamp.br Assunto:  [Dicas-L] Comprimindo logs ao mesmo tempo em que são gerados Data:  Fri, 07 May 2004 02:35:58 -0300 -------------------------------------------------------------------- Comente esta dica em http://www.Dicas-l.com.br/dicas-l/20040507.php -------------------------------------------------------------------- Concessões http://www.idph.net/artigos/nossacomunidade/concessoes.php ---------------------------------------------------------------------------------------   Comprimindo logs ao mesmo tempo em que são gerados   ================================================== Colaboração: Herbert G. Fischer Sobre a dica que eu enviei à Dicas-L da compactação de arquivos, realmente funciona, mas tem um problema grave. Esta dica eu enviei a muito tempo atrás, se não me engano à mais de um ano. Como ela "demorou" para ser publicada, eu acabei esquecendo de enviar a correção assim que descobri. De lá para cá, percebi que algo não fazia sentido. A grosso modo qualquer compressão (sem perda) de arquivo, sugere uma eliminação da repetição de alguma informação somente se gravando quantas vezes aquilo é repetido e onde está no original. Ao concatenar trechos de texto compactados, não se está compactando o todo novamente, mas sim, apenas eliminando a repetição no trecho compactado. Ao fazer isso, somando-se cabeçalhos, informações extras, e tal, o arquivo compactado pode e provavelmente ficará maior que o arquivo original. A dica continua valendo, mas para concatenar coisas "grandes", em que, realmente, a compressão surte algum efeito. Um pequeno teste em shell script que pode comprovar o problema:   #!/bin/sh   for i in `seq 1 10000`   do       echo compressao | gzip -f >> a.gz       echo compressao >> b   done O resultado...  o arquivo "a.gz" fica MAIOR que o arquivo "b". Simplesmente porque o texto "compressao" ao ser compactado pelo gzip, ficou maior que o texto sem compressao. O arquivo "a.gz" gerado é diferente de um arquivo texto com 10.000 linhas do texto compressao e compactado inteiramente. Seria o caso de compactar o arquivo "b" gerando um arquivo "b.gz" de apenas 264 bytes, contra 310.000 bytes do arquivo a.gz. A sugestão fica por conta de NÃO utilizar esse mecanismo para registrar pequenas mensagens, mas não impede de ser utilizado para grandes textos. Talvez alguém ache uma boa utilização disso em alguma coisa que valha mais a pena concatenar algo "grande" comprimido em uma coisa maior e já comprimida, do que descomprimir o que já está comprimido, concatenar, e comprimir novamente. ----------------------------------------------------------         If Microsoft Had Invented Books ...         =================================== - Before you can open the cover of your new book, you must obtain a book activation code by phoning Microsoft. - Sorry, only one person may ever read your book. - It's full of spelling mistakes and typos. - When you're reading your book, the type can mysteriously disappear. - Libraries, which are for sharing books, are illegal. - You must acknowledge you have read and understood the Book License Agreement Hype (BLAH) before you can read your book. - Microsoft has the right to enter your premises to conduct book inspections to make sure your book is being read in accordance with the BLAH. - The Book Users' Group General Alliance (BUGGA) calculates that the annual loss of revenues to Microsoft arising from BLAH violations in 2001 was $10.97 billion. - There are two versions of your book - the "Standard" and the "Pro" versions. In the standard version, those pages containing the most useful information have been stuck together. - Confidential information is inexplicably in bigger type that can be easily read by anyone glancing over your shoulder. -------------------------------------------------------------------- --------------------------------------------------------------------           :::::PHP-GTK Criando Aplicações Gráficas com PHP:::::              http://www.novateceditora.com.br/livros/phpgtk            http://www.temporeal.com.br/produtos.php?id=168331 -------------------------------------------------------------------------------                        :::::Portal PHP-GTK:::::                       http://www.php-gtk.org.br ------------------------------------------------------------------------------- As mensagens da lista Dicas-L são veiculadas diariamente para 24736 assinantes.        Todas as mensagens da Dicas-L ficam armazenadas em                http://www.Dicas-l.com.br. A redistribuição desta e outras mensagens da lista Dicas-L pode ser feita livremente, deste que o conteúdo, inclusive esta nota, não sejam modificados. --------------------------------------------------------------- ******************************************************** De:  Dicas-L-Owner@unicamp.br Assunto:  [Dicas-L] Comprimindo logs ao mesmo tempo em que são gerados Data:  Thu, 06 May 2004 02:36:27 -0300 -------------------------------------------------------------------- Comente esta dica em http://www.Dicas-l.com.br/dicas-l/20040506.php -------------------------------------------------------------------- Paradoxos do Poder http://www.idph.net/artigos/idph/paradoxos.shtml ---------------------------------------------------------------------------------------   Comprimindo logs ao mesmo tempo em que são gerados   ================================================== Colaboração: Herbert G. Fischer 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. -----------------------------------------------------------   CENAPAD-SP: Oportunidade de estagio   =================================== O CENAPAD-SP (Centro Nacional de Processamento de Alto Desempenho em Sao Paulo, localizado na UNICAMP), está selecionando um estagiario para trabalhar na area de Suporte Tecnico. Bolsa de R$ 902,00 por mes, para carga horaria de 40 horas semanais a serem cumpridas no periodo de 8h30 às 17h30.         Pre-requisitos :         ================ Cursando Ciencia da Computacao, Engenharia de Computacao, Analise de Sistemas e afins, em Universidade na regiao de Campinas         Conhecimentos desejaveis :         ==========================  - Ambientes : Unix/Linux, Redes Windows (NT, 2000, 2000 Server, etc)  - Linguagens de programacao : C, shell scripts, Java, SQL  - Ferramentas Web (html, PHP, javascript, etc)  - Aplicativos graficos (Gimp, MS Publisher, etc)  - Ingles para leitura Enviar curriculo ate' 12/05/2004 para : estagio@cenapad.unicamp.br -----------------------------------------------------------         Rewards of Heaven         ================= When Bill Gates died, he went up to Heaven, where St. Peter showed him to his house - a beautiful 20 room house, with grounds and a tennis court. Bill Gates was pleased, and spent many months enjoying the amenities of Heaven. One day, he was enjoying one of Heaven's many fine parks, when he ran into a man dressed in a fine tailored suit. "That is a nice suit, my friend," said Gates. "Where did you get it?" "Actually," the man replied, "I was given a hundred of these when I got here. I've been treated really well. I got a mansion on a hill overlooking a beautiful hill, with a huge five-hundred acre estate, a golf course, and three Rolls Royces." "Were you a Pope, or a doctor healing the sick?", asked Gates. "No," said his new friend. "Actually, I was the captain of the Titanic." Hearing this made Gates so angry that he immediately stalked off to find St. Peter. Cornering Peter, he told him about the man he had just met, saying, "How could you give me a paltry new house, while you're showering new cars, a mansion, and fine suits on the Captain of the Titanic? I invented the Windows operating system! Why does he deserve better??!!!!" "Yes, but we use Windows," replied Peter, "and the Titanic only crashed once." -------------------------------------------------------------------- HTTP - Guia de Consulta Rápida http://novateceditora.com.br/guias/http/ -------------------------------------------------------------------- As mensagens da lista Dicas-L são veiculadas diariamente para 24731 assinantes.        Todas as mensagens da Dicas-L ficam armazenadas em                http://www.Dicas-l.com.br. A redistribuição desta e outras mensagens da lista Dicas-L pode ser feita livremente, deste que o conteúdo, inclusive esta nota, não sejam modificados. --------------------------------------------------------------- ******************************************************** ******************************************************** ******************************************************** ******************************************************** ********************************************************