rsync로 단일 파일 전송 재개


22

우분투에서는 rsync를 통해 하드 드라이브에서 이동식 드라이브로 큰 파일을 복사하려고합니다. 어떤 이유로 든 다른 작업으로 단일 실행으로 작업을 완료 할 수 없습니다. 그래서 rsync를 사용하여 마지막으로 남은 곳에서 파일 복사를 재개하는 방법을 알아 내려고합니다.

--partial 또는 --inplace 옵션을 사용하려고 시도했지만 --progress와 함께 --partial 또는 --inplace와의 rsync가 실제로 마지막에 남은 것이 아니라 처음부터 시작한다는 것을 알았습니다. 수동으로 rsync를 중지하고 수신 된 파일의 크기를 확인하면 내가 찾은 것을 확인합니다.

그러나 --append를 사용하면 rsync는 마지막에 남은 것부터 시작합니다.

맨 페이지에서 보았을 때 혼란스러워합니다 .-partial, --inplace 또는 --append는 마지막에 남은 것에서 복사를 다시 시작하는 것과 관련이있는 것 같습니다. 누군가 차이점을 설명 할 수 있습니까? 사본을 재개하는 데 --partial 또는 --inplace가 작동하지 않는 이유는 무엇입니까? 사본을 재개하려면 rsync가 --append 옵션과 함께 작동해야한다는 것이 사실입니까?

또한 일부 파일이 rsync가 아닌 mv 또는 cp로 남겨진 경우 rsync가 올바르게 추가됩니까?

감사합니다.


rsync 작동 방식에 대한 나의 이해는 제한적이지만 마지막 질문에 대답합니다. cp가 불완전한 경우 rsync는 복사를 다시 시작해야합니다. 나는 믿는다 파일과 동일한의 시작 부분을 찾아 낼 수있는 방법에 rsync를 hashs 파일, 파일의 나머지 부분을 복사합니다.
Scott McClenning

답변:


25

rsync에 대한 일부 페이지를 보면 :

--append
이로 인해 rsync는 파일 끝에 데이터를 추가하여 파일을 업데이트합니다. 수신 측에 이미 존재하는 데이터가 송신 측 파일의 시작과 동일하다고 가정합니다.

--inplace
이 옵션은 데이터를 업데이트해야 할 때 rsync가 파일을 전송하는 방법을 변경합니다. 파일의 새 사본을 작성하고 파일이 완료되면 파일을 제자리로 옮기는 기본 방법 대신, rsync는 업데이트 된 데이터를 대상 파일.

--partial
기본적으로 rsync는 전송이 중단되면 부분적으로 전송 된 파일을 삭제합니다. 경우에 따라 부분적으로 전송 된 파일을 유지하는 것이 더 바람직합니다.

파일이 매우 큰 경우 같은 소리를 사용 --partial --append합니다. ( --append의미 --inplace이 큰 파일이 변경되면, 다음 드롭) --append및 rsync와는 너무 소스 파일과 일치하는 확인하기 위해 파일의 시작을 확인합니다. --inplace큰 파일을 재 동기화하는 경우를 제외하고는 위험합니다. rsync가 시작 부분의 새 임시 파일을 작성하고 전송을 계속 한 다음 이전 파일을 제거하여 새 파일을 제자리에 두지 않기를 원하지 않습니다. 동일한 파일을 사용할 수 있으면 전송 속도가 빨라지고 전송에 필요한 디스크 공간은 더 적습니다.

또한 전체 파일 전송 관점에서 복사본이 rsync보다 빠릅니다. 그러나 파일을 업데이트 해야하는 경우 전체 파일을 다시 전송하는 것보다 파일을 빠르게 rsync 동기화했습니다. (위에서 말했듯이) Rsync는 cp에서 다시 시작할 수 있어야합니다.

이게 도움이 되길 바란다.


1
이 버그 리포트를보고 싶을 것입니다
Stefan Schmidt

기본적으로 더 빠른 cp를 사용하고 rsync는 손상된 cp 프로세스를 "수리"하는 것이 좋습니다. 깔끔한 :)
사무엘 Lampa
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.