다음 명령을 사용하여 rsync를 사용하여 홈 디렉터리의 일부 폴더를 원격 서버에 백업하고 있습니다.
cd
rsync -Favz --inplace --delete --delete-excluded folder1 folder2 folder3 remote-server:/remote/path/
로컬이든 원격이든 모든 파일은 내 사용자의 소유입니다.
내 사용자가 해당 파일과 상위 디렉터리의 소유자인 경우에도 패턴이 r--r--r--인 파일을 제외하고는 잘 작동합니다.
rsync가 이러한 파일에 대해 보고하는 내용은 다음과 같습니다.
rsync: open "/remote/path/somefolder/somefile" failed: Permission denied (13)
...
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.0]
임시 해결책으로 원격 시스템(동일 사용자)에 로그인하여 파일을 삭제하고 rsync를 다시 실행하면 이러한 모드에서 파일이 생성되지만 다음에 스크립트를 실행하면 다시 실패합니다.
rsync가 원격 측에서 쓰기 불가능한 파일을 덮어쓰도록 하는 방법이 있습니까(또는 해당 파일을 삭제하고 다시 생성), 아니면 먼저 원격으로 삭제한 다음 백업 스크립트를 실행해야 합니까?
이 질문은 다음과 관련이 있습니다.0000 권한으로 /etc/{,g}shadow 파일을 백업하는 방법은 무엇입니까?후자가 옳고 그름에 대해 이야기하는 것을 제외하고읽을 수 있는파일, 제 질문은 읽을 수는 있지만 쓸 수는 없는 파일에 관한 것입니다.
답변1
이것은 옵션의 부작용입니다 --inplace
. 이는 네트워크를 통한 동기화보다는 디스크 간 동기화에 더 적합합니다. 전송이 중단될 때 파일이 일관되지 않은 상태로 유지되는 등의 다른 부작용도 문제가 될 수 있습니다. --inplace
rsync 증분 전송 알고리즘은 이미 매우 효율적이므로 동기화하지 마십시오 .