파일의 압축 된 아카이브로 rsync


11

rsync를 사용하여 서버 백업을 수행하지만 해당 백업은 상당히 커서 압축하고 싶습니다. rsync 주위에 일종의 래퍼를 사용하여 백업에서 파일을 압축하고 라이브 파일의 변경 사항을 rsync 한 다음 파일이 복사되는 즉시 파일을 다시 압축하는 방법이 있습니까?

즉, 라이브의 소스 파일이 foo , barbaz 인 경우 백업에는 foo.gz , bar.gzbaz.gz가 있습니다.

다시 말하면 : 한쪽 끝에 압축 파일이 있고 다른 쪽 끝에 압축되지 않은 파일이 필요합니다. --rsyncable을 사용하더라도 rsync의 효율성이 떨어지기 때문에 rsyncing 전에 압축하고 싶지 않습니다. rsync의 -z 옵션에 대해 알고 있습니다. 백업 파일에 압축되지 않은 모든 파일을 저장할 공간이 없습니다.

답변:


10

나는 당신이하려는 일을 이해하지 못하지만 주 서버에서 gzip으로 압축 된 백업을 생성하여 동기화가 가능하고 전송중인 것을 압축 해제하지 않아도되도록 할 수 있습니다.

gzip(1)

--rsyncable
       While compressing, synchronize the output occasionally based on
       the  input.   This  increases  size by less than 1 percent most
       cases, but means that the rsync(1) program can much more  effi‐
       ciently  synchronize  files  compressed with this flag.  gunzip
       cannot tell the difference between a  compressed  file  created
       with this option, and one created without it.

좋은. rsyncable 플래그에 대해 몰랐습니다. 편리합니다. 이것이 왜 1 % 손실의 기본값이 아닌지 궁금합니다.
Matt Simmons

NB : --rsyncable 옵션은 모든 버전의 gzip에서 사용할 수 없으며 코어 gzip 코드가 아니라 일반적으로 적용되는 패치에서 제공되므로 버전 번호 만 있으면 알 수 없습니다.
mc0e


-1

rsync에 랩퍼를 작성할 수 있습니다. 데이터를 '풀'하면 특별한 조치가 없습니다. 원래 머신에서 백업 서버로 데이터를 '푸시'하려면 데이터를보다 섬세하게 작동 시키십시오.

먼저 백업을 실행하는 사용자에 대해 랩퍼가 원래 rsync와 동일한 이름, 경로 및 매개 변수로 호출되는지 확인해야합니다.

둘째, stdout에 어떤 것도 쓰지 마십시오. 통신 채널을 망칠 수 있기 때문입니다.

셋째, 새로 압축되지 않은 대상에 맞게 수정하면 모든 매개 변수를 전달해야합니다.


-2

아마도 다른 쪽의 파일 압축이 아니라 rsync를 통한 데이터 전송 압축을 찾고있을 것입니다.

체크 아웃 : http://jimmyg.org/blog/2007/rsync-basics.html

매뉴얼 페이지의 압축 매개 변수 :

   -z, --compress              compress file data during the transfer

        --compress-level=NUM    explicitly set compression level

기본적으로 ssh는 어느 정도 자체 압축을 수행합니다. rsync가 네이티브 ssh보다 얼마나 나은지 모르겠습니다. 대부분의 파일이 이미 gzip 파일로 압축되어 있다면 rsync의 압축 메커니즘이 그다지 도움이되지 않을 것입니다. 파일을 너무 많이 짜낼 수 있습니다.


아니요, 한쪽 끝에서만 파일 압축을 찾고 있습니다. 이미 압축 파일을 재 동기화하는 것은 비효율적이므로 rsync 부분이 압축되지 않은 데이터로 발생하도록하고 싶습니다.
rjmunro
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.