Qual é a maneira mais rápida e confiável de dividir um arquivo binário de 50 GB em partes de 5 GB ou menos e depois remontá-lo mais tarde?

21

Nossos servidores estão executando o Ubuntu Linux, e o arquivo binário é um despejo BSON de uma grande coleção MongoDB. Quão confiável é uma ferramenta como split ? Existe uma maneira mais rápida ou melhor de fazer isso?

    
por Hennes 05.07.2010 / 04:29

4 respostas

22

Para dividir, dividir -b

Para participar, apenas cat .

AFAIK eles são completamente confiáveis, e eu duvido que haja algo mais eficiente.

    
por 05.07.2010 / 04:35
17

A divisão é muito confiável. Nós o usamos para portar grandes arquivos de log, e funcionou bem até um par de GBs (não 50 GB de qualquer forma).

Acredito que você pode tentar usar a divisão para sua exigência e nos informar.

Divida em arquivos de 5 GB

split --bytes=5G inputfile

Ela será dividida em vários arquivos de 5 GB e nomeada como xaa, xab, xac, .... e assim por diante.

Concatenar

cat x* > outfile

por isso, você pode concatenar como arquivo único no outro lado.

    
por 05.07.2010 / 17:59
3

Se você tiver o rar instalado, funcionou muito bem para mim:

Para separar

rar a -m0 -v5000m newfilename giantfile.foo
  • a = adiciona arquivos para arquivar
  • m0 = sem compactação
  • v5000m = dividido em blocos de 5000 megabytes

Para remontar:

unrar x newfilename.*
  • x = extrair

Benefícios:

  • CRC no conteúdo do arquivo dividido,
  • ordenação de arquivos divididos mantidos automaticamente,
  • vários arquivos e diretórios podem ser incluídos.
por 05.07.2010 / 13:12
3

split & cat são totalmente confiáveis. Você também pode comprimir em linha como este. Suponha que seu arquivo de entrada seja dump.bson :

gzip < dump.bson | split -b 32M - dump.bson.gz.

E depois reconstituir com isso:

cat dump.bson.gz.* | gunzip > dump.bson

Dica, isso funciona tão bem com xz(dec) no lugar de g(un)zip

    
por 20.11.2017 / 21:20

Tags