일반적으로 rsync
소스 및 대상 측에서 파일의 크기와 시간이 동일한 경우 파일을 건너 뜁니다. 이 방법 rsync
은 소스와 대상에서 거의 동일한 파일의 내용을 검사 하지 않아도 되기 때문에 일반적으로 좋은 생각 인 휴리스틱입니다 .
--ignore-times
알 rsync
파일 배 앤 크기의 휴리스틱을 끄고, 따라서 무조건 대상으로 소스에서 모든 파일을 전송할 수 있습니다. rsync
그런 다음 델타 전송 알고리즘을 사용하거나 --whole-file
옵션이 지정 되었는지 여부에 따라 모든 파일을 전체로 보내야하기 때문에 소스 측의 모든 파일을 계속 읽습니다 .
--checksum
또한 파일 시간 및 크기 휴리스틱을 수정하지만 여기서는 시간을 무시하고 크기 만 검사합니다. 크기가 다른 소스 및 대상 측의 파일은 분명히 다르기 때문에 전송됩니다. 크기가 같은 파일은 체크섬 ( rsync
버전 3.0.0+의 MD5 또는 이전 버전의 MD4)과 합이 다른 파일도 전송됩니다.
소스와 대상이 대부분 동일한 경우 --checksum
대부분의 파일이 양쪽에서 체크섬됩니다. 시간이 오래 걸릴 수 있지만, 특히 델타 전송 알고리즘을 사용하는 경우 가장 작은 최소 데이터가 실제로 전송됩니다. 물론, 네트워크 속도가 매우 느리거나 CPU 속도가 매우 빠른 경우에만 승리입니다.
--ignore-times
반면에, 네트워크를 통해 더 많은 데이터를 보내면 모든 소스 파일을 읽게되지만 최소한 소스 및 대상 CPU에서 많은 암호로 강력한 해시 섬을 계산해야하는 추가적인 부담은 없습니다. 이 옵션이 --checksum
네트워크 속도가 빠르거나 CPU 속도가 상대적으로 느릴 때보 다 성능이 좋을 것으로 기대합니다 .
나는 오직 사용하는 것이 생각 --checksum
이나 --ignore-times
내가 누구의 수정 시간 변경되지 하였다가 일부 파일의 내용이 손상되었다고 의심 목적지 만에 파일을 전송 한 경우. 다른 유스 케이스가 있지만 옵션을 사용해야하는 다른 좋은 이유는 실제로 생각할 수 없습니다.
--checksum
과 함께 유용하다는 것을 알았습니다--itemize-changes
. 현재 매일 / 매주 업데이트가 완료된 후마다 내 백업 스크립트가이 방식으로 전체 비교를 실행합니다.--itemize-changes
예상치 못한 결과가 출력 되면 긴급으로 표시된 이메일을 삭제 했으므로 조사해야 할 잠재적 인 문제가 있음을 알고 있습니다.