rsync를 사용하여 서버 백업을 수행하지만 해당 백업은 상당히 커서 압축하고 싶습니다. rsync 주위에 일종의 래퍼를 사용하여 백업에서 파일을 압축하고 라이브 파일의 변경 사항을 rsync 한 다음 파일이 복사되는 즉시 파일을 다시 압축하는 방법이 있습니까?
즉, 라이브의 소스 파일이 foo , bar 및 baz 인 경우 백업에는 foo.gz , bar.gz 및 baz.gz가 있습니다.
다시 말하면 : 한쪽 끝에 압축 파일이 있고 다른 쪽 끝에 압축되지 않은 파일이 필요합니다. –rsyncable을 사용하더라도 rsync의 효율성이 떨어지기 때문에 rsyncing 전에 압축하고 싶지 않습니다. rsync의 -z 옵션에 대해 알고 있습니다. 백업 파일에 압축되지 않은 모든 파일을 저장할 공간이 없습니다.
답변
나는 당신이하려는 일을 이해하지 못하지만 주 서버에서 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.
답변
fuseCompress 마운트 파일 시스템으로의 rsyncing이 가장 좋은 옵션이라고 생각합니다. 이 프로젝트의 역사는 특히 rsync의 성능을 향상시키는 것을 언급합니다.
답변
rsync에 랩퍼를 작성할 수 있습니다. 데이터를 ‘풀’하면 특별한 조치가 없습니다. 원래 머신에서 백업 서버로 데이터를 ‘푸시’하려면 데이터를보다 섬세하게 작동 시키십시오.
먼저 백업을 실행하는 사용자에 대해 랩퍼가 원래 rsync와 동일한 이름, 경로 및 매개 변수로 호출되는지 확인해야합니다.
둘째, stdout에 어떤 것도 쓰지 마십시오. 통신 채널을 망칠 수 있기 때문입니다.
셋째, 새로 압축되지 않은 대상에 맞게 수정하면 모든 매개 변수를 전달해야합니다.
답변
아마도 다른 쪽의 파일 압축이 아니라 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의 압축 메커니즘이 그다지 도움이되지 않을 것입니다. 파일을 너무 많이 짜낼 수 있습니다.