Какой самый быстрый и надежный способ разбить двоичный файл размером 50 ГБ на куски по 5 ГБ или меньше, а затем собрать его позже?

26

Наши серверы работают под управлением Ubuntu Linux, а двоичный файл представляет собой дамп BSON большой коллекции MongoDB. Насколько надежен инструмент split? Есть ли более быстрый или лучший способ сделать это?

Hennes
источник

Ответы:

26

Разделить, разделить -b

Чтобы присоединиться, просто cat.

AFAIK они абсолютно надежны, и я сомневаюсь, что есть что-то более эффективное.

leonbloy
источник
21

Сплит очень надежный. Мы используем его для портирования больших файлов журналов, и он работал хорошо до пары ГБ (не 50 ГБ в любом случае).

Я полагаю, что вы можете попробовать использовать сплит для ваших требований, и дайте нам знать.

Разделить на 5 ГБ файлов

split --bytes = 5G входной файл

Он разделится на несколько файлов по 5 ГБ и назовет его как xaa, xab, xac, .... и так далее.

Объединить

cat x *> outfile

этим вы можете объединить как один файл на другом конце.

thegeek
источник
1
На OS XI пришлось использовать разделение -b50m для создания 50-мегабайтных файлов. Обратите внимание, нет знака равенства, обратите внимание на нижний регистр.
funroll
3

Если у вас установлен rar, он работает очень хорошо для меня:

Разделять

rar a -m0 -v5000m newfilename giantfile.foo
  • a = добавить файлы в архив
  • m0 = без сжатия
  • v5000m = разделить на куски по 5000 мегабайт

Чтобы собрать:

unrar x newfilename.*
  • х = экстракт

Выгоды:

  • CRC о содержании сплит-архива,
  • порядок разделения файлов сохраняется автоматически,
  • Несколько файлов и директорий могут быть включены.
Кори Фарвелл
источник
3

split& catабсолютно надежны. Вы можете дополнительно сжать в линию, как это. Предположим, ваш входной файл dump.bson:

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

А потом собраться с этим:

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

Совет, это работает так же хорошо, xz(dec)вместоg(un)zip

Джошуа Хубер
источник