Qual è il modo più rapido e affidabile per dividere un file binario da 50 GB in blocchi di 5 GB o meno e poi rimontarlo in un secondo momento?


26

I nostri server eseguono Ubuntu Linux e il file binario è un dump BSON di una grande raccolta MongoDB. Quanto è affidabile uno strumento split? C'è un modo più veloce o migliore per farlo?

Risposte:


26

Per dividere, dividere -b

Per partecipare, giusto cat.

AFAIK sono completamente affidabili e dubito che ci sia qualcosa di più efficiente.


21

la divisione è molto affidabile. Lo usiamo per il porting di file di log di grandi dimensioni e ha funzionato bene fino a un paio di GB (non comunque 50 GB).

Credo che tu possa provare a utilizzare la divisione per le tue esigenze e facci sapere.

Dividi in file da 5 GB

split --bytes = 5G inputfile

Si dividerà in più file da 5 GB e lo denominerà come xaa, xab, xac, .... e così via.

Concatenare

cat x *> outfile

da questo puoi concatenare come file singolo nell'altra estremità.


1
Su OS X ho dovuto usare split -b50m per creare file da 50 megabyte. Nota nessun segno di uguale, nota in minuscolo.
funroll

3

Se hai installato raramente, ha funzionato molto bene per me:

Separare

rar a -m0 -v5000m newfilename giantfile.foo
  • a = aggiungi file all'archivio
  • m0 = nessuna compressione
  • v5000m = suddiviso in blocchi di 5000 megabyte

Per riassemblare:

unrar x newfilename.*
  • x = estratto

Benefici:

  • CRC sul contenuto dell'archivio diviso,
  • ordinamento dei file divisi mantenuto automaticamente,
  • possono essere inclusi più file e directory.

3

splite catsono totalmente affidabili. È inoltre possibile comprimere in linea in questo modo. Supponiamo che il tuo file di input sia dump.bson:

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

E poi ricostituire con questo:

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

Suggerimento, questo funziona altrettanto bene con xz(dec)al posto dig(un)zip

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.