원격 서버에 이미 존재하는 폴더(예: )를 제외 하고 폴더 가 있는 원본 서버에서 실행 test/xyz
하고 싶기 때문에 원격 측의 폴더를 덮어쓰고 싶지 않습니다 .rsync
test1/xyz
xyz
test/xyz
또한 원본 서버에서 파일이 삭제/추가되면 해당 파일은 원격 서버에서 삭제/추가되지만 폴더에서는 삭제/추가되지 않으며 해당 파일도 업데이트하고 싶습니다.
원격 디렉터리를 제외하기 위해 다음 명령을 사용해 보았으나 제외된 디렉터리와 파일이 원격 디렉터리에 복사됩니다.
rsync -ave ssh --exclude=remotedirectory root@IPADDRESS:remotepath --delete sourcepath
어떤 아이디어가 있나요?
답변1
두 가지 방법이 있습니다.
- 어쨌든
--exclude=dir
동기화하고 싶지 않기 때문에 로컬이든 원격이든 상관이 없습니다. - 이 제외 옵션을 사용
--rsync-path='rsync --exclude=dir'
하면 원격 rsync가 수행됩니다.
답변2
이것은 작동합니다:
rsync -av --delete --exclude=/xyz/ sourcepath/ root@IPADDRESS:remotepath/
"sourcepath"의 루트에 나타날 때 "xyz"가 제외됩니다.그리고디렉토리입니다(끝의 "/"가 이를 보장합니다).
원본 및 대상 디렉터리의 후행 슬래시가 중요합니다. 그것 없이는두번째rsync 실행은 아마도 원하는 것이 아닐 수도 있는 새 폴더 "remotepath/sourcepath"를 생성합니다.
또한 귀하의 설명에 따르면 소스 및 대상 매개변수가 잘못되었습니다(그러나 혼란은 내 것일 수 있습니다).