29

Our servers are running Ubuntu Linux, and the binary file is a BSON dump of a large MongoDB collection. How reliable is a tool like split? Is there a faster or better way to do this?

29

To split, split -b

To join, just cat.

AFAIK they are completely reliable, and I doubt there is something more efficient.

| improve this answer | |
25

split is very reliable. We use it for porting large log files, and it worked well for up to a couple of GBs ( not 50 gb anyway ).

I believe you can try using the split for your requirement, and let us know.

Split into 5GB files

split --bytes=5G inputfile

It will split into multiple files of 5GB and name it as xaa, xab, xac, .... and so on.

Concatenate

cat x* > outfile

by this you can concatenate as single file in the other end.

| improve this answer | |
  • 1
    On OS X I had to use split -b50m to make 50 megabyte files. Note no equals sign, note lowercase. – funroll Jul 17 '14 at 20:06
  • On OS X I have to give explicitly the output file name: split -b3m file.zip file.zip otherwise split creates files called xaa, xab, etc. – yannis Jul 3 at 13:22
4

split & cat are totally reliable. You can additionally compress in-line like this. Suppose your input file is dump.bson:

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

And then reconstitute with this:

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

Tip, this works just as well with xz(dec) in place of g(un)zip

| improve this answer | |
3

If you have rar installed, it's worked very well for me:

To Separate

rar a -m0 -v5000m newfilename giantfile.foo
  • a = add files to archive
  • m0 = no compression
  • v5000m = split into chunks of 5000 megabytes

To Reassemble:

unrar x newfilename.*
  • x = extract

Benefits:

  • CRC on the content of the split archive,
  • split-file ordering kept automatically,
  • multiple files and dirs can be included.
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy