
파일 시스템에서 nfs(약 1Tera)로 많은 양의 데이터를 전송하려면 "Rsync" 명령을 사용했습니다.
잠시 후 컴퓨터가 꺼지고 전송이 취소되었습니다. (600G 전송하는데 10시간 정도 소요되었습니다.)
업로드된 파일 시스템 중 일부는 사용자에 의해 변경/추가되었습니다. 부분 전송을 삭제하지 않고 Rsync를 다시 사용하면 해당 파일 전송을 무시하고 변경된 내용을 다시 업로드한다는 것을 알고 싶습니다.
추신: 재동기화를 재개하는 옵션이 있는 경우 전송된 파일이 처음 업로드된 것보다 훨씬 빨리 무시됩니까? 600G를 전송하는데 10시간이 걸렸기 때문에 걱정했는데, 다음 Rsync는 훨씬 빨라졌으면 좋겠습니다.
편집: Apperantly 나는 답변에 대해 언급할 수 없습니다... 그래서 @Kusalananda에 사용했습니다 rsync -rtzvx
.
답변1
옵션을 사용하지 않았 -a
으므로 사용자 및 그룹 소유권이나 권한이 보존되지 않았습니다. 그러나 타임스탬프는 -t
.
이제 rsync를 다시 시작하면 위의 메타데이터를 사용하여 대상의 파일이 소스의 파일과 동일한지 확인할 수 없습니다. 운이 좋다면 --size-only
rsync에 크기가 동일하면 파일이 동일하다고 가정하도록 지시하는 를 사용할 수 있습니다. 이는 일반적으로 로그 파일이나 사진과 같은 항목에 대해서만 올바르게 작동합니다.
그러나 상황은 생각만큼 나쁘지 않을 수 있습니다. rsync는 소스와 대상 모두의 각 파일을 체크섬하며, 체크섬에 차이가 있는 경우에만 다른 블록이 전송됩니다. 즉, 전체 파일이 다시 전송되는 것이 아니라 변경된 블록만 전송됩니다. 이것이 rsync의 강점입니다. 더 많은 디스크 IO를 사용하여 네트워크 대역폭 사용을 최적화합니다.
물론 이는 rsync가 네트워크를 통해 다른 호스트로 전송되고 있다고 가정합니다. 귀하가 말하는 NFS 파일 시스템이 로컬로 마운트된 경우 rsync는 파일을 확인하는 동안 실제로 훨씬 더 많은 네트워크 대역폭을 사용하므로 이를 위한 도구가 아닐 수 있습니다. 또한 rsync는 --whole-file
로컬 전송을 수행할 때 모드로 전환됩니다. 먼저 전체 소스 및 대상 파일을 확인한 다음 소스를 대상에 복사하는 것은 의미가 없기 때문입니다.
일반적으로 가능하면 을 사용하는 것이 좋습니다 -a
. --numeric-ids
소스와 대상에 다른 사용자가 있는 경우 이를 결합해야 할 수도 있습니다 . 사용자가 동일하지만 ID가 다를 수 있는 경우 을 사용하지 마십시오. --numeric-ids
rsync는 이름에 따라 ID를 매핑합니다.