Arquivando muitos arquivos / um arquivo grande

2

Eu quero compactar cerca de 100'000 arquivos (é o que diz find . -type f | wc -l ) com um uso total de disco de 100 GB. A maioria dos arquivos é pequena, mas apenas um punhado deles compõe cerca de 70 GB dos 100 GB.

Eu não quero usar tar ou tar.gz para isso, porque se eu quiser acessar o arquivo, o File Roller primeiro tem que ler todo o arquivo do disco rígido externo antes que eu possa ver a lista de arquivos. A mesma coisa se eu tentar listar os arquivos no terminal.

Não preciso do gerenciamento de direitos do tar porque posso lembrar os poucos arquivos que precisam de outros direitos que os outros. Qual algoritmo de compressão devo usar?

E enquanto estou nisso: faço backups completos do disco com este comando:

dd if=/dev/sda bs=32M | gzip -9 > /location/dateAndMachineName.gz

Ele faz uma boa compressão. Mas você conhece um algoritmo de compressão melhor?

    
por UTF-8 23.05.2015 / 15:49

2 respostas

4

A única solução que conheço é pixz ( sudo apt-get install pixz ) , uma variante de xz usando um codificador bloqueado que permite rápido acesso aleatório / indexação. Além disso, é um método paralelo que usa vários núcleos para compactação.

Citando os documentos:

  

Os XZ Utils existentes ( link ) fornecem excelentes   compactação no formato de arquivo .xz, mas eles têm dois   problemas:

     
  • Eles são single-threaded, enquanto a maioria dos usuários hoje em dia tem computadores com vários núcleos.
  •   
  • Os arquivos .xz que eles produzem são apenas um grande bloco de dados compactados, em vez de uma coleção de blocos menores. Isso faz aleatório   acesso aos dados originais impossíveis.
  •   

Com o pixz, ambos os problemas foram resolvidos.

O uso é simples:

tar -Ipixz -cf foo.tpxz foo para compactar uma pasta foo

pixz -l foo.tpxz para listar arquivos nele (rápido!)

pixz -x <file_path> < foo.tpxz | tar x para extrair um único arquivo dado <file_path> no arquivo

Como bônus, você também terá direitos de acesso armazenados, uma vez que os arquivos são os primeiros a serem alcatroados!

    
por Andrzej Pronobis 23.05.2015 / 21:43
1

Eu só penso em uma solução para você: Crie uma nova partição, com um sistema de arquivos btrfs e ative a compressão transparente. Tenha em mente que algumas pessoas ainda consideram um sistema de arquivos "experimental". Dito isto, o meu HDD secundário de backup está usando o btrfs (há pouco mais de 2 anos) e até agora ele me deu 0 problemas. Mas, como de costume YMMV.

Este e isso deve começar com o btrfs, se você ainda não estiver familiarizado com ele.

    
por Stunts 23.05.2015 / 17:01