Jaki jest najszybszy i najbardziej niezawodny sposób na podzielenie pliku binarnego o pojemności 50 GB na części o wielkości 5 GB lub mniejszej, a następnie ponowne złożenie go później?


26

Na naszych serwerach działa Ubuntu Linux, a plik binarny to zrzut BSON dużej kolekcji MongoDB. Jak niezawodne jest narzędzie split? Czy istnieje szybszy lub lepszy sposób na zrobienie tego?

Odpowiedzi:


26

Aby podzielić, podziel -b

Aby dołączyć, po prostu cat.

AFAIK są całkowicie niezawodne i wątpię, aby było coś bardziej wydajnego.


21

podział jest bardzo niezawodny. Używamy go do przenoszenia dużych plików dziennika i działał dobrze nawet do kilku GB (w każdym razie nie 50 GB).

Wierzę, że możesz spróbować użyć podziału dla swoich wymagań i daj nam znać.

Podziel na 5 GB plików

split --bytes = plik wejściowy 5G

Zostanie podzielony na wiele plików o pojemności 5 GB i nazwie go jako xaa, xab, xac, .... i tak dalej.

Powiązać

cat x *> outfile

dzięki temu możesz połączyć jako pojedynczy plik na drugim końcu.


1
W systemie OS XI musiałem użyć podziału -b50m, aby utworzyć 50 megabajtów plików. Uwaga nie ma znaku równości, uwaga małe litery.
funroll

3

Jeśli masz zainstalowany RAR, działał dla mnie bardzo dobrze:

Oddzielić

rar a -m0 -v5000m newfilename giantfile.foo
  • a = dodaj pliki do archiwum
  • m0 = brak kompresji
  • v5000m = podzielony na fragmenty o wielkości 5000 megabajtów

Aby ponownie złożyć:

unrar x newfilename.*
  • x = ekstrakt

Korzyści:

  • CRC na temat zawartości podzielonego archiwum,
  • automatyczne dzielenie plików podzielone,
  • można dołączyć wiele plików i katalogów.

3

spliti catsą całkowicie niezawodne. Możesz dodatkowo kompresować w ten sposób. Załóżmy, że plik wejściowy to dump.bson:

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

A następnie rozpoczynaj z tym:

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

Wskazówka, działa to równie dobrze z xz(dec)zamiastg(un)zip

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.