50GB 바이너리 파일을 5GB 이하의 청크로 분할 한 다음 나중에 다시 조립하는 가장 빠르고 안정적인 방법은 무엇입니까?


26

우리 서버는 Ubuntu Linux를 실행하고 있으며 이진 파일은 대규모 MongoDB 컬렉션의 BSON 덤프입니다. 도구는 얼마나 신뢰할 수 split있습니까? 더 빠르고 더 좋은 방법이 있습니까?

답변:


26

분할하려면 -b 를 분할하십시오

가입하려면 cat.

AFAIK는 완전히 신뢰할 수 있으며 더 효율적인 것이 의심됩니다.


21

스플릿은 매우 안정적입니다. 대용량 로그 파일을 포팅하는 데 사용하며 최대 2GB (어쨌든 50GB 아님)까지 잘 작동했습니다.

귀하의 요구 사항에 대해 분할을 사용해 볼 수 있다고 알려 주시면 알려주십시오.

5GB 파일로 분할

split --bytes = 5G 입력 파일

5GB의 여러 파일로 분할되어 xaa, xab, xac 등으로 이름이 지정됩니다.

사슬 같이 잇다

고양이 x *> 아웃 파일

이것에 의해 당신은 다른 쪽 끝에 단일 파일로 연결할 수 있습니다.


1
OS XI에서는 split -b50m을 사용하여 50MB 파일을 만들어야했습니다. 등호는없고 소문자를주의하십시오.
funroll

3

rar가 설치되어 있다면, 그것은 나를 위해 아주 잘 작동했습니다 :

분리하려면

rar a -m0 -v5000m newfilename giantfile.foo
  • a = 보관할 파일 추가
  • m0 = 압축 없음
  • v5000m = 5000MB의 청크로 분할

재 조립하려면 :

unrar x newfilename.*
  • x = 추출

은혜:

  • 분할 아카이브의 내용에 대한 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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.