중단 후 rsync를 재개하면 데이터가 변경될 수 있습니다.

중단 후 rsync를 재개하면 데이터가 변경될 수 있습니다.

저는 "Rsync" 명령을 사용하여 파일 시스템에서 nfs(약 1Tera)로 많은 양의 데이터를 전송합니다.

잠시 후 컴퓨터가 종료되면서 전송이 취소되었습니다. (600G 전송에는 약 10시간 소요)

업로드된 일부 파일 시스템은 사용자에 의해 변경/추가되었습니다. 부분 전송을 삭제하지 않고 Rsync를 다시 사용하면 Transferres 파일을 무시하고 변경된 내용을 다시 업로드한다는 것을 알 수 있을지 궁금합니다.

PS Rsync를 재개하는 옵션이 있는 경우 전송된 파일이 첫 번째 업로드보다 더 빨라지나요? 600G 전송하는데 10시간이나 걸려서 걱정인데 다음 Rsync는 훨씬 빨라졌으면 좋겠습니다.

편집: 분명히 답변에 대해 언급할 수 없습니다... 그래서 @Kusalananda를 사용했습니다 rsync -rtzvx.

답변1

이러한 옵션을 사용하지 않으므로 -a사용자 및 그룹 소유권과 권한은 보존되지 않습니다. 그러나 타임스탬프는 -t.

지금 rsync를 다시 시작하면 위의 메타데이터를 사용하여 대상의 파일이 소스의 파일과 동일한지 확인할 수 없습니다. 운이 좋다면 --size-onlyrsync에 파일 크기가 동일하면 동일하다고 가정하도록 지시하는 를 사용할 수 있습니다. 이는 일반적으로 로그 파일이나 사진과 같은 파일에만 작동합니다.

그러나 상황은 생각만큼 나쁘지 않을 수 있습니다. rsync는 소스와 대상의 각 파일을 체크섬하고 체크섬에 차이가 있는 경우에만 다른 청크를 전송합니다. 즉, 전체 파일이 다시 전송되지 않고 변경된 블록만 전송됩니다. 이것이 rsync의 장점입니다. 즉, 더 많은 디스크 IO를 희생하여 네트워크 대역폭 사용량을 최적화합니다.

물론 이는 rsync가 네트워크를 통해 다른 호스트로 전송되고 있다고 가정합니다. 말하는 NFS 파일 시스템이 로컬로 마운트된 경우 rsync는 파일을 검사할 때 실제로 더 많은 네트워크 대역폭을 사용하므로 rsync는 이 목적으로 사용하는 도구가 아닐 수 있습니다. 또한 rsync는 로컬 전송을 수행할 때 모드로 전환합니다 --whole-file. 먼저 전체 소스 및 대상 파일을 확인한 다음 소스 파일을 대상 파일에 복사하는 것은 의미가 없기 때문입니다.

일반적으로 가능하다면 를 사용하는 것이 좋습니다 -a. --numeric-ids소스와 대상의 사용자가 다른 경우 이를 병합해야 할 수 있습니다. 사용자가 동일하지만 ID가 다를 수 있는 경우 사용하지 마십시오 --numeric-ids. rsync는 이름을 기반으로 ID를 매핑합니다.

관련 정보