rsync --delete ssh를 사용할 때 대상의 파일을 삭제하지 않음

rsync --delete ssh를 사용할 때 대상의 파일을 삭제하지 않음

내 RHEL6 서버 쌍에서 SSH를 사용하여 server-1에서 Server-2로 rsync를 테스트했습니다. 모든 것이 예상대로 작동합니다. 그러나 A 디렉토리의 A/x.file 파일을 Server-1의 /home/user B/로 이동할 때 --delete(또는 유사한 옵션)를 사용하여 동일한 rsync를 반복해도 A의 x가 삭제되지 않습니다. file/ 및 x.file을 Server-2의 B/에 백업합니다. rsync 스크립트는 다음과 같습니다.

rsync -avhu -e ssh --delete home/user/ remote_user@remote_host:/home/user/.  

SSH는 비밀번호 없이 설정됩니다. 이러한 옵션을 다른 순서로 시도했지만 그 중 아무 것도 작동하지 않았습니다. 이는 x.file이 여전히 대상(server-2)의 A/ 아래에 있고 B/에는 없음을 의미합니다. 무엇이 잘못되었나요?

답변1

다음은 스크립트에서 선택한 옵션을 사용하여 rsync가 원하는 작업을 수행하도록 하는 방법에 대한 몇 가지 일반적인 지침입니다.

디렉토리에서 디렉토리의 내용을 복사합니다.원천원격 디렉토리목적지디렉터리(처음으로)에서 다음을 수행할 수 있습니다.

    rsync --archive --verbose --human-readable source -e ssh username@servername:/home/user/ . 

다음 사항을 일부 변경한 후원천동기화하려는 디렉토리목적지디렉토리, 실행:

    rsync --archive --verbose --human-readable --delete source/ -e ssh username@servername:/home/user/source . 

기록:

  • 원본 디렉터리를 대상 디렉터리로 처음 복사하면원하지 않는다소스 코드 뒤에 /(슬래시)를 추가해야 합니다.

  • 때를동기화소스 디렉터리에서 대상 디렉터리로,하다소스 뒤에 /(슬래시)를 추가해야 합니다. /는 소스 디렉터리의 내용을 나타내며,아니요디렉토리 자체.

--dry-run 옵션을 사용하여 스크립트를 테스트해 볼 수 있습니다.

답변2

이 약간 수정된 코드는 저에게 효과적입니다.

rsync -avhu -e ssh --delete /home/user/ remote_user@remote_host:/home/user/.

프로덕션 코드가 그 home/user/대신 이를 참조하는 경우 /home/user/이는 쉽게 실패의 원인이 될 수 있습니다. 또한 오류가 발생합니다.rsync: change_dir "/home/user//home/user" failed: No such file or directory (2)

관련 정보