50GBのバイナリファイルを5GB以下のチャンクに分割し、後で再構築する最も高速で信頼性の高い方法は何ですか?


26

私たちのサーバーはUbuntu Linuxを実行しており、バイナリファイルは大規模なMongoDBコレクションのBSONダンプです。ツールの信頼性はどのくらいsplitですか?これを行うためのより速いまたはより良い方法はありますか?

回答:


26

分割するには、split -b

参加するには、ただcat

私の知る限り、彼らは完全に信頼性があり、より効率的なものがあるとは思わない。


21

分割は非常に信頼できます。私たちは大きなログファイルを移植するためにそれを使用し、最大で数GB(とにかく50GBではない)でうまく機能しました。

要件に応じてスプリットを使用してみてください。

5GBファイルに分割

split --bytes = 5G入力ファイル

5GBの複数のファイルに分割され、xaa、xab、xac、...などの名前が付けられます。

連結する

cat x *> outfile

これにより、もう一方の端で単一のファイルとして連結できます。


1
OS XIでは、split -b50mを使用して50メガバイトのファイルを作成する必要がありました。等号には注意せず、小文字に注意してください。
funroll 14

3

rarがインストールされている場合、私にとって非常にうまく機能しています。

分離するために

rar a -m0 -v5000m newfilename giantfile.foo
  • a =ファイルをアーカイブに追加
  • m0 =圧縮なし
  • v5000m = 5000メガバイトのチャンクに分割

再組み立てするには:

unrar x newfilename.*
  • x =抽出

利点:

  • 分割アーカイブのコンテンツのCRC、
  • 分割ファイルの順序は自動的に維持され、
  • 複数のファイルとディレクトリを含めることができます。

3

splitcat完全に信頼できます。このようにインラインでさらに圧縮できます。入力ファイルがdump.bson次のとおりであるとします:

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

そして、これで再構成します:

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

ヒントは、これはと同じようにうまく機能xz(dec)の代わりに、g(un)zip

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.