我有兩台伺服器,我想將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 再次複製。
有人有解決這個問題的方法嗎?
答案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 命令放在 1 個腳本中,並放置一個標誌檔案以指示如果另一個腳本正在運行,則同步將不會運行。
讓我知道這是否有幫助。