rsync는 변경된 파일만 복사하며 파일 수정 타임스탬프는 무시합니다.

rsync는 변경된 파일만 복사하며 파일 수정 타임스탬프는 무시합니다.

다음 조건에서 rsync가 작동하도록 할 수 있습니까?

if len(f1) != len(f2) then rsync
if len(f1) == len(f2) and md5sum(f1) != md5sum(f2) then rsync

가장 가까운 옵션은 무엇입니까 --checksum? ?


답변1

rsync맨페이지 에서 :

설명하다

Rsync는 빠르고 다양한 파일 복사 도구입니다. 원격 셸을 통해 다른 호스트로/에서 로컬로 복사하거나 원격 rsync 데몬으로/에서 복사할 수 있습니다. 이는 동작의 다양한 측면을 제어할 수 있는 많은 옵션을 제공하고 복사할 파일 세트를 지정하는 데 있어 뛰어난 유연성을 허용합니다. 원본 파일과 대상에 있는 기존 파일의 차이만 전송하여 네트워크로 전송되는 데이터의 양을 줄이는 증분 전송 알고리즘으로 알려져 있습니다. Rsync는 백업 및 미러링에 널리 사용되며 일상적인 사용을 위한 향상된 복사 명령으로 사용됩니다.

Rsync는 lqquick checkrq 알고리즘(기본값)을 사용하여 전송해야 하는 파일을 찾습니다.크기나 마지막 수정 시간이 변경된 파일을 찾습니다.빠른 검사 결과 파일의 데이터를 업데이트할 필요가 없음이 나타나면, 유지된 다른 속성(옵션에서 요청한 대로)에 대한 모든 변경 사항이 대상 파일에 직접 적용됩니다.

따라서 설명에서 볼 수 있는 기본 동작은 다음과 같습니다.

  • 로컬 또는 원격으로 작동하는 복제 도구
  • 다양한 옵션
  • 기본적으로 증분 전송 알고리즘, 네트워크 사용량을 줄이기 위해 서로 다른 파일 세트만 전송
  • 널리 사용되는 이미징 및 백업 도구
  • checkrq 알고리즘은 조건 1에서 원하는 작업을 수행합니다. if len(f1) != len(f2) then rsync
  • 옵션이 전달되지 않으면 대상은 영향을 받는 대상입니다.

이제 체크섬과 관련된 옵션을 찾아보세요. 다음 항목에 대해 설명서를 검색하세요.

-c, --checksum
   This changes the way rsync checks if the files have been changed and are in
   need of a transfer. Without this option, rsync uses a lqquick checkrq that
   (by default) checks if each file's size and time of last modification match
   between the sender and receiver. This option changes this to compare a 128-
   bit checksum for each file that has a matching size. Generating the checksums
   means that both sides will expend a lot of disk I/O reading all the data in
   the files in the transfer (and this is prior to any reading that will be
   done to transfer changed files), so this can slow things down significantly.

설명은 --checksum정확히 당신이 원하는 것입니다 if len(f1) == len(f2) and md5sum(f1) != md5sum(f2) then rsync. 일치하는 크기의 모든 파일에 대해 128비트 체크섬을 수행합니다.

하지만 이 옵션을 사용하면 상황에 따라 I/O가 크게 늘어날 수 있으므로 주의하세요.

관련 정보