![rsync로 복원할 때 일부 이전 파일 유지](https://linux55.com/image/142961/rsync%EB%A1%9C%20%EB%B3%B5%EC%9B%90%ED%95%A0%20%EB%95%8C%20%EC%9D%BC%EB%B6%80%20%EC%9D%B4%EC%A0%84%20%ED%8C%8C%EC%9D%BC%20%EC%9C%A0%EC%A7%80.png)
나는 종종 rsync와 다음 명령을 사용하여 원격 서버에서 대용량 파일을 전송합니다.
rsync -rvhm \
--progress \
--size-only \
--stats \
--partial-dir=.rsync-partial \
"user@server::module/some_path" "some_path"
some_path
이렇게 하면 전송이 실패하더라도 나중에 다시 시작할 수 있으며 모든 부분 전송이 some_path/.rsync-partial
.
전송이 재개되면 rsync를 먼저 확인하여 재개할 위치를 정확하게 결정하는 것이 좋습니다. 문제는 이 검사가 완료되면 일부 파일이복사.partial-rsync
이력서 폴더 외부. 따라서 진행 중인 전송뿐만 아니라 부분 전송(다음 일시 중지 또는 전송이 완료되면 대체되거나 삭제됨)도 남습니다.
이는 다음과 같은 이유로 불편합니다.
- 목적지에 여유 공간이 많지 않습니다.
- 파일이 상당히 큽니다.
- 부분 전송이 "충분히" 진행된 경우 rsync가 먼저 복사를 시도하고 복원에 사용할 수 있는 공간이 충분하지 않다고 불평하기 때문에 복원하지 못할 수도 있습니다.
- 전송을 재개하기 위해 부분 파일의 복사본을 보관할 이유가 없습니다. 부분 파일 자체를 사용해야 합니다.
이 동작을 피할 수 있는 방법이 있습니까? 아니면 의도적으로 설계된 것입니까? 그렇다면 왜 이런 식으로 작동하기를 원합니까?
답변1
--inplace
이러한 복사를 방지하기 위해 이 옵션을 결합할 수 있는 패치가 있지만 --partial-dir
아직까지는 가능하지 않은 것 같습니다.
인용하다오류 13071자세한 내용은 설명을 참조하세요.
--inplace가 --partial-dir 또는 이를 암시하는 옵션(--delay-update)과 함께 사용되는 경우 내부 동작은 부분 디렉토리에서 발생하며 각 파일은 완료되면 최종 대상으로 이동됩니다. .
아쉽게도 현재까지 패치가 적용되지 않았습니다.