從兩台伺服器 rsync 到一個公共位置

從兩台伺服器 rsync 到一個公共位置

我有兩台伺服器,我想將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 個腳本中,並放置一個標誌檔案以指示如果另一個腳本正在運行,則同步將不會運行。

讓我知道這是否有幫助。

相關內容