두 개의 서버가 있고 rsync
두 서버의 파일을 단일 위치로 보내고 싶습니다.
- 서버 1에는 파일 A와 B가 있습니다.
- 서버 2에는 파일 A와 B가 있습니다.
rsync
서버 3에 파일 A와 B가 있는 경우
사용자가 서버 1에서 파일 A를 삭제하고 서버 2에서 파일 B를 삭제하면 서버 3에는 파일이 없어야 합니다.
하지만 내 설정에서는 제대로 작동하지 않습니다.
rsync --delete server1 server3
rsync --delete server2 server3
A를 먼저 삭제하고 B를 두 번째로 삭제하지만 A는 서버 2에서 다시 복사됩니다. 빈 디렉토리를 얻는 대신 A로 다시 끝납니다.
누구든지 이 문제를 해결할 수 있나요?
답변1
수행 중인 rsync 명령은 server3을 복사하는 모든 서버의 엄격한 복사본을 만드는 것입니다. 따라서 server1(A가 누락되고 B가 있음)의 복제본이 된 다음 server2(A가 있고 B가 누락됨)의 복제본이 되도록 지시합니다.
한 단계 뒤로 이동하여 여기서 무엇을 목표로 하고 있는지 설명해 주실 수 있나요?
답변2
시도해 보셨나요?
rsync -u --delete server1 server3
rsync --delete server2 server3
rsync 매뉴얼 페이지에서:
-u, --update update only (don’t overwrite newer files)
먼저 동기화를 수행하는 사람이 server1이든 server2이든 파일이 이미 server3에 있는지 여부를 존중합니다.
그러나 rsync 명령을 하나의 스크립트에 넣고 다른 스크립트가 실행 중이면 동기화가 실행되지 않음을 나타내는 플래그 파일을 넣어야 합니다.
도움이 된다면 알려주세요.