Qual é a maneira mais rápida e confiável de dividir um arquivo binário de 50 GB em pedaços de 5 GB ou menos e montá-lo mais tarde?


26

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

Respostas:


26

Para dividir, divida -b

Para participar, apenas cat.

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


21

A divisão é muito confiável. Nós o usamos para transportar arquivos de log grandes e funcionou bem por até dois GB (não 50 GB).

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

Dividido em arquivos de 5 GB

split --bytes = arquivo de entrada 5G

Ele será dividido em vários arquivos de 5 GB e denominado xaa, xab, xac, .... e assim por diante.

Concatenar

cat x *> outfile

com isso, você pode concatenar como arquivo único na outra extremidade.


1
No OS XI, era necessário usar split -b50m para criar arquivos de 50 megabytes. Observe que nenhum sinal de igual, observe em minúsculas.
funroll

3

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

Separar

rar a -m0 -v5000m newfilename giantfile.foo
  • a = adicionar arquivos ao arquivo
  • m0 = sem compressão
  • v5000m = dividido em partes de 5000 megabytes

Para remontar:

unrar x newfilename.*
  • x = extrato

Benefícios:

  • CRC sobre o conteúdo do arquivo dividido,
  • ordenação de arquivos divididos mantidos automaticamente,
  • vários arquivos e diretórios podem ser incluídos.

3

splite catsão totalmente confiáveis. Além disso, você pode compactar in-line assim. Suponha que seu arquivo de entrada seja dump.bson:

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

E então reconstitua com isso:

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

Dica, isso funciona tão bem quanto xz(dec)no lugar deg(un)zip

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.