이미 압축된 파일을 rsync

이미 압축된 파일을 rsync

입력 파일이 이미 gzip으로 압축된 경우 rysnc -z가 압축 이점을 갖습니까? 서버 간에 네트워크를 통해 전송할 대용량 100GB 압축 파일이 있는데 다양한 시간이 지난 후에도 지속적으로 실패했습니다(파이프 손상). -z 플래그를 사용해 봐야 할지 궁금합니다.

답변1

이미 압축된 파일을 전송 중에 압축하는 것은 일반적으로 CPU 시간을 낭비할 가치가 없습니다. 주의 사항이 있습니다. 두 파일을 비교하는 과정에서 압축과 함께 rsync를 사용하면 데이터 해시 비교 속도를 높일 수 있습니다.

둘 이상의 시스템에서 대용량 파일의 압축된 버전만 동기화하려는 경우 특정 gzip 빌드를 살펴봐야 합니다. Ubuntu 시스템에서는 다음을 얻습니다.

$ gzip -h
사용법: gzip [OPTION]... [FILE]...
FILE을 압축하거나 압축 해제합니다(기본적으로 FILES를 내부에서 압축).

긴 옵션에 대한 필수 인수는 짧은 옵션에도 필수입니다.

  -c, --stdout 표준 출력에 쓰고 원본 파일을 변경하지 않고 유지합니다.
  -d, --decompress 압축 해제
  -f, --force 출력 파일을 강제로 덮어쓰고 링크를 압축합니다.
  -h, --help 이 도움을 주세요
  -l, --list 압축된 파일 내용 나열
  -L, --license 소프트웨어 라이센스 표시
  -n, --no-name 원래 이름과 타임스탬프를 저장하거나 복원하지 않습니다.
  -N, --name 원래 이름과 타임스탬프를 저장하거나 복원합니다.
  -q, --quiet 모든 경고를 억제합니다.
  -r, --recursive 디렉토리에서 재귀적으로 작동합니다.
  -S, --suffix=SUF 압축 파일에 접미사 SUF를 사용합니다.
  -t, --test 압축 파일 무결성 테스트
  -v, --verbose 상세 모드
  -V, --version 버전 번호 표시
  -1, --fast 압축 속도가 빨라짐
  -9, --최고의 압축 성능 향상
    --rsyncable rsync에 적합한 아카이브를 만듭니다.

FILE이 없거나 FILE이 -인 경우 표준 입력을 읽습니다.

버그를 신고하세요.

해당 옵션이 보이시나요 --rsyncable? 소스 파일에 약간의 변경 사항이 있을 때 압축 파일의 작은 부분만 변경되도록 적응형 압축을 사용하지 않습니다. 바이너리 데이터의 나머지 부분은 변경되지 않으므로 rsync가 전체를 재전송할 필요가 없습니다. 매뉴얼 페이지에는 이 옵션을 사용하지 않았을 때와 비교하여 압축 파일의 크기가 약 1% 이상 늘어나서는 안 되며, gunzip은 그 차이를 알 수 없다고 나와 있습니다.

옵션을 사용하여 57MB로 압축한 468MB SQL 파일이 있습니다 --rsyncable. 이 파일을 로컬 시스템으로 전송합니다. 그런 다음 원격 시스템의 원본 SQL 파일에 한 줄 주석을 추가하고 rsyncable 옵션을 사용하여 다시 압축합니다.

$ rsync -avvz --progress -h fooboo:foo.sql.gz .
ssh fooboo rsync --server --sender -vvlogDtprz 를 사용하여 연결 열기. foo.sql.gz
파일 목록 수신 중...
고려해야 할 파일 1개
델타 전송 활성화됨
foo.sql.gz
      59.64M 100% 43.22MB/s 0:00:01 (xfer#1, to-check=0/1)
전체: 일치 항목=7723 hash_hits=9468 false_alarms=0 데이터=22366

전송 54.12K 바이트 수신 22.58K 바이트 17.05K 바이트/초
총 크기는 59.64M이며 속도 향상은 777.59입니다.

나쁘지 않다. Rsync는 소량의 최신 압축 파일만 전송하면 되었습니다.

답변2

rsync는 전송 중에 이미 압축된 파일을 크게 작게 만들지 않습니다.

-z 플래그를 추가하여 실패한 전송이 수정될 가능성은 거의 없습니다. 압축되지 않은 파일을 재동기화하는 것이 좋습니다. 그러면 rsync가 즉시 압축됩니다. 그러면 소스 파일이 변경되고 다시 rsync해야 하는 경우 변경된 바이트만 전송된다는 이점이 있습니다. 압축 파일을 변경하면 rsync는 파일 전체를 다시 전송해야 할 가능성이 높습니다. 자세한 내용은 여기를 참조하세요.

http://beeznest.wordpress.com/2005/02/03/rsyncable-gzip/

답변3

을 사용하면 좋은 압축 형식을 사용하여 이미 압축된 파일을 처리할 때보 rsync -z다 아무런 이점이 없습니다 . rsync그러나 압축 파일을 더 작은 조각으로 분할하여 rsync를 사용하여 전송할 수 있도록 고려할 수도 있습니다.

다음은 Linux용 가이드입니다.http://www.techiecorner.com/107/how-to-split-large-file-into-several-smaller-files-linux/ Windows의 경우:http://www.online-tech-tips.com/computer-tips/how-to-split-a-large-file-into-multiple-smaller-pieces/

관련 정보