rsync에 사용되는 증분 전송 알고리즘은 소스 파일(예: 하위 파일)의 일부를 전송합니까?

rsync에 사용되는 증분 전송 알고리즘은 소스 파일(예: 하위 파일)의 일부를 전송합니까?

rsync는 델타 전송 알고리즘을 사용하여 파일을 전송한다고 합니다.

원본 파일과 동일한 파일 이름을 가진 기존 대상 파일의 경우,

  1. 증분 전송 알고리즘 사용 여부

    • rsync가 소스 파일을 대상으로 전송하기로 결정한 후에만 또는
    • rsync가 소스 파일을 대상으로 전송할지 여부를 결정할 때?
  2. rsync가 소스 파일을 대상 파일로 전송하기로 결정하면,

    델타 전송 알고리즘은 소스 파일과 대상 파일 간의 차이를 전송합니까?

    델타 전송 알고리즘은 먼저 두 파일 간의 패치 파일을 계산한 다음 패치 파일을 대상으로 전송한 다음 패치 파일을 기존 대상 파일에 적용하여 "하위 파일" 수준에서 작동합니까? 소스 파일의 동일한 복사본?

    그렇다면 rsync는 소스 파일과 대상 파일 간의 패치 파일을 계산하기 위해 소스 파일을 대상으로 전송해야 합니까? 그렇다면 이는 전체 소스 파일 전송을 방지하려는 증분 전송 알고리즘의 목적과 모순됩니까?

감사해요.

답변1

rsync가 소스 파일을 대상으로 전송하기로 결정한 후에만

예.

rsync가 소스 파일을 대상으로 전송할지 여부를 결정할 때

습관. 델타 알고리즘이 시작 되면 rsync파일 업데이트에만 전념하게 됩니다.

델타 전송 알고리즘은 소스 파일과 대상 파일 간의 차이를 전송합니까?

기본적으로 그렇습니다. 이 옵션을 사용하여 비활성화할 수 있습니다 --whole-file. 델타 전송 알고리즘은 다음을 보냅니다.아니요diff실제로 두 파일 중 하나입니다.

델타 전송 알고리즘은 먼저 두 파일 간의 패치 파일을 계산한 다음 패치 파일을 대상으로 전송한 다음 패치 파일을 기존 대상 파일에 적용하여 "하위 파일" 수준에서 작동합니까? 소스 파일의 동일한 복사본?

아니요. rsync보낸 사람이 파일의 대상 버전 사본을 갖고 있는 것으로 간주되지 않기 때문입니다.

rsync롤링 체크섬을 사용하면 전체 파일을 어느 방향으로든 전송하지 않고 파일의 일치하는 부분을 확인할 수 있습니다. 물론, 일치하는 항목이 없으면 전체 파일을 전송해야 합니다.

관련 정보