폴더 a /와 원격 폴더 A /가 있습니다. 이제 Makefile에서 다음과 같이 실행합니다.
get-music:
rsync -avzru server:/media/10001/music/ /media/Incoming/music/
put-music:
rsync -avzru /media/Incoming/music/ server:/media/10001/music/
sync-music: get-music put-music
내가 sync-music을 만들 때, 먼저 서버에서 로컬로 모든 diff를 가져온 다음 그 반대에서 모든 diff를 로컬에서 서버로 보냅니다.
이것은 미래에 업데이트 나 새 파일이있을 때만 매우 잘 작동합니다. 삭제가 있으면 아무 작업도 수행하지 않습니다.
rsync에는 내가 원하는 것을 달성하는 데 도움이되는 --delete 및 --delete-after 옵션이 있지만, 양방향 동기화에서는 작동하지 않습니다.
syn에서 서버 파일을 삭제하려면 로컬 파일이 삭제되었을 때 작동하지만 어떤 이유로 (이후 설명) 서버에 없지만 로컬에 존재하고 삭제 된 파일이있는 경우, 나는 그것들을 로컬에서 제거하고 서버가 복사하지 않기를 원합니다.
상황에 따라 3 대의 기계가 있습니다.
- 데스크탑
- 공책
- 홈 서버
따라서 때때로 서버에 노트북 동기화로 삭제 된 파일이있을 수 있습니다. 예를 들어 데스크톱에서 동기화를 실행할 때 (삭제 된 서버 파일이 여전히 존재하는 경우) 이러한 파일이 삭제되지 않기를 원합니다. 다시 서버에 복사되었습니다.
나는 이것이 데이터베이스와 작업 추적에서만 가능하다고 생각합니다.
더 간단한 솔루션이 있습니까? 감사합니다.