거의 변경되지 않고 작은 파일이 많이 포함된 대용량 폴더를 가장 빠르게 검사할 수 있는 rsync에 가장 적합한 스마트 매개변수는 무엇입니까? 다음 명령을 사용하여 하루가 끝날 때 로컬 디스크를 USB3 디스크에 동기화하고(하루 시작에는 그 반대로 수행) 아무것도 변경되지 않았음에도 불구하고 여전히 1분 정도 걸립니다. 더 빨리 확인할 수 있습니까? 예를 들어, 각 폴더에는 수정 시간이 있다고 가정하므로 /Source/A와 /Target/A의 수정 시간이 동일하면 해당 폴더에 재귀적으로 들어갈 필요가 없나요? 아니면 rsync가 중첩된 수천 개의 작은 파일을 각각 확인해야 하는 것이 위험합니까? 다른 아이디어가 있나요? 감사해요
rsync -a --delete --stats /Source/ /Target/
Number of files: 208,645 (reg: 187,331, dir: 16,910, link: 4,404)
Number of created files: 0
Number of deleted files: 0
Number of regular files transferred: 0
Total file size: 11,103,192,078 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 65,536
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 4,126,114
Total bytes received: 17,677
sent 4,126,114 bytes received 17,677 bytes 236,788.06 bytes/sec
total size is 11,103,192,078 speedup is 2,679.48
답변1
rsync
특히 장치 중 하나가 있는 경우 두 로컬 장치 사이보다 더 빠른 속도를 얻을 수는 없습니다 .비네이티브 NTFS. 변경되지 않은 상태로 "보이는" 파일을 이미 건너뛰려고 합니다.
기본 파일 시스템(예: ext4)에서 또는 서로 다른 두 시스템 간에 파일을 전송하는 경우 처리량이 더 높아질 수 있지만 그다지 많지는 않을 것입니다.
디렉터리인지 확인하기 위해 각 항목을 검색해야 하고 수정 시간이 상위 항목에 전파되지 않기 때문에 디렉터리 기반 최적화를 사용할 수 없습니다.