TAR e comprimir um diretório, mas ignorar a compactação em arquivos já compactados

1

Eu quero TAR e comprimir o diretório pessoal de um usuário da forma mais eficiente possível. O problema é que existem muitos arquivos grandes e já compactados (gzip / bzip2) e difíceis de compactar (binários / dados) no diretório inicial do usuário, bem como muitos arquivos fáceis de compactar (código-fonte). É possível pular a compressão de arquivos já comprimidos e / ou difíceis de comprimir enquanto apenas comprime os fáceis?

O principal objetivo é maximizar a transferência de dados para uma rede GigE através de algo como:

tar cf - path | gzip -c | nc host port

Se eu não comprimir nada, o gargalo é a rede. Se eu comprimir, o gargalo é o tempo da CPU. AE / S de disco não é um problema. O diretório tem cerca de 150 TB no total, mas estou preso a um único caminho GigE.

    
por gogators 09.03.2016 / 21:25

1 resposta

0

o tar não compacta, o gzip faz isso com o que obtém do tar. Mas o gzip só tem uma coisa para lidar (stdout of tar) aqui, então, mesmo que pudesse escolher coisas para compactar e outras não, não há um segundo item para escolher.

O que você pode fazer é usar o find para arquivos compactados e tar-tee-netcat sem re-compressão. O arquivo tee escreveu pode ser usado para um segundo ciclo tar-gzip-netcat como uma lista de exceção dada ao tar (-X).

    
por 09.03.2016 / 21:38