Existe algum formato de compressão que suporte operações de cauda?

10

Estou procurando um formato de compactação que suporte a tail ed. Isso significa que você não precisa ler o arquivo inteiro para obter os últimos X bytes não compactados. Isso é possível com qualquer um dos formatos como bzip2, xz, lzma, etc?

Uma vez eu codifiquei algo usando o gzip que poderia fazer isso. Basicamente em um nível muito alto, o que ele fez foi cat multiple gzip blocks juntos, então eu tinha um utilitário que poderia procurar para trás do final do arquivo até quando o último bloco fosse iniciado. Esses arquivos eram totalmente legíveis pelos utilitários gzip padrão, mas espero que haja algo um pouco mais padronizado disponível.

O propósito final para isso é para arquivos de log que eu posso escrever compactados, e então ser capaz de tail deles (mesmo quando eles não foram totalmente escritos; isto é, streaming) sem ter que esperar a coisa toda ser ler do disco ou da rede.

    
por Patrick 19.09.2011 / 06:08

1 resposta

4

O gzip tem uma opção --rsyncable que faz essencialmente o mesmo . A parte não padrão seria o utilitário "ztail", que reconhece o gzip-block, mas parece que você já lidou com isso.

    
por 19.09.2011 / 12:40