네트워크를 통해 전송하는 데 시간이 오래 걸리는 매우 큰 파일 이미지 파일 (몇 픽셀 차이 만)을 약간 변경하고 있습니다.
rsync가 파일의 차이점을 식별하고 네트워크를 통해 작은 차이 만 보내는 방법이 있습니까?
네트워크를 통해 전송하는 데 시간이 오래 걸리는 매우 큰 파일 이미지 파일 (몇 픽셀 차이 만)을 약간 변경하고 있습니다.
rsync가 파일의 차이점을 식별하고 네트워크를 통해 작은 차이 만 보내는 방법이 있습니까?
답변:
rsync
델타 전송 알고리즘은 기본적으로이 작업을 수행합니다. rsync 맨 페이지 인용 :
기술
Rsync는 빠르고 다양한 파일 복사 도구입니다. 로컬로, 원격 쉘을 통해 다른 호스트로 또는 원격 rsync 데몬으로 /로부터 복사 할 수 있습니다. 여기에는 동작의 모든 측면을 제어하고 파일 세트의 매우 유연한 사양을 복사 할 수있는 많은 옵션이 있습니다. 델타 전송 알고리즘으로 유명합니다.이 기능은 소스 파일과 대상의 기존 파일 간의 차이 만 보내 네트워크를 통해 전송되는 데이터의 양을 줄입니다 . Rsync는 백업 및 미러링과 일상적인 사용을위한 향상된 복사 명령으로 널리 사용됩니다.
사용하지 않으려면 -W
또는 --whole-file
옵션 을 사용해야합니다 .
-W,-전체 파일
이 옵션은 rsync의 델타 전송 알고리즘을 비활성화하여 전송 된 모든 파일이 전체로 전송되도록합니다. 소스와 대상 시스템 사이의 대역폭이 디스크 대역폭보다 높을 때 (특히 "디스크"가 실제로 네트워크 파일 시스템 인 경우)이 옵션을 사용하면 전송 속도가 더 빠를 수 있습니다. 소스 및 대상이 로컬 경로로 지정되어 있지만 배치 작성 옵션이 적용되지 않는 경우에만 기본값입니다.
파일이 얼마나 많이 변경되었는지 알고 있다면 델타 블록 크기를 조정하여이 델타 전송 동작을 최적화 할 수도 있습니다.
-B, --block-size = BLOCKSIZE
이것은 rsync의 델타 전송 알고리즘에 사용 된 블록 크기를 고정 된 값으로 강제합니다. 일반적으로 업데이트되는 각 파일의 크기에 따라 선택됩니다. 자세한 내용은 기술 보고서를 참조하십시오.
알고리즘 자체에 대한 자세한 정보가 필요하면 여기에서 찾을 수 있습니다. Rsync 알고리즘
rsync
기본적으로이 방식으로 작동합니다. 사소한 변경이 파일에 대한 사소한 변경이고 파일이 거의 동일한 버전의 링크 양쪽에 이미 존재하는 한, 전송 된 데이터는 총 파일 크기보다 훨씬 작아야합니다. 매뉴얼 페이지의 첫 번째 단락에서 : "이것은 델타 전송 알고리즘으로 유명합니다. 델타 전송 알고리즘은 소스 파일과 대상의 기존 파일 간의 차이 만 전송하여 네트워크를 통해 전송되는 데이터의 양을 줄입니다."