¿Cuál es la forma más rápida y confiable de dividir un archivo binario de 50 GB en fragmentos de 5 GB o menos y luego volver a ensamblarlo?

26

Nuestros servidores ejecutan Ubuntu Linux, y el archivo binario es un volcado BSON de una gran colección MongoDB. ¿Qué tan confiable es una herramienta split? ¿Hay una manera más rápida o mejor de hacer esto?

Hennes
fuente

Respuestas:

26

Para dividir, dividir -b

Para unirse, solo cat.

AFAIK son completamente confiables, y dudo que haya algo más eficiente.

leonbloy
fuente
21

Split es muy confiable. Lo usamos para portar archivos de registro grandes, y funcionó bien hasta por un par de GB (de todos modos, no 50 gb).

Creo que puede intentar usar la división para sus requisitos, y háganos saber.

Dividir en archivos de 5GB

split --bytes = 5G inputfile

Se dividirá en múltiples archivos de 5GB y lo nombrará como xaa, xab, xac, ... y así sucesivamente.

Concatenar

cat x *> outfile

con esto puedes concatenar como archivo único en el otro extremo.

el friki
fuente
1
En OS X, tuve que usar split -b50m para crear archivos de 50 megabytes. Tenga en cuenta que no hay signo igual, nota en minúscula
funroll
3

Si tienes rar instalado, me funcionó muy bien:

Separar

rar a -m0 -v5000m newfilename giantfile.foo
  • a = agregar archivos al archivo
  • m0 = sin compresión
  • v5000m = dividido en trozos de 5000 megabytes

Para volver a armar:

unrar x newfilename.*
  • x = extraer

Beneficios:

  • CRC sobre el contenido del archivo dividido,
  • el orden de archivos divididos se mantiene automáticamente,
  • Se pueden incluir múltiples archivos y directorios.
Corey Farwell
fuente
3

splitY catson totalmente confiables. También puede comprimir en línea de esta manera. Supongamos que su archivo de entrada es dump.bson:

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

Y luego reconstituir con esto:

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

Consejo, esto funciona igual de bien xz(dec)en lugar deg(un)zip

Joshua Huber
fuente