Linux

使用 rsync 跨兩台伺服器同步目錄(或同步目錄的替代方法)

  • November 14, 2013

我有兩個虛擬機應該在這個目錄中有相同的文件:

/var/www/owncloud/data/admin/files/

我最初認為我可以使用 rsync 和 cron 每兩分鐘複製一次文件:

在 VM1 上:

*/2 * * * * rsync -auz --delete-after /var/www/owncloud/data/admin/files root@VM2:/var/www/owncloud/data/admin

在 VM2 上

*/2 * * * * rsync -auz --delete-after /var/www/owncloud/data/admin/files root@VM1:/var/www/owncloud/data/admin

我遇到的問題是,如果我將文件上傳到 VM1,兩分鐘後,VM2 上的 cronjob 會覆蓋 VM1 上的目錄,從而刪除文件。

我從 VM1->VM2 和 VM2->VM1 複製的原因是因為我設置了非常基本的故障轉移。如果 VM1 出現故障並且從 VM2 添加/刪除文件,我希望在 VM1 上複製這些更改;並且 VM1 已啟動並添加/刪除文件,我希望在 VM2 上複製這些更改。

這可能與rsync有關嗎?我的命令錯了嗎?有沒有我應該使用的替代方案?

看看 unison,它允許雙向同步:http ://www.cis.upenn.edu/~bcpierce/unison/

您可以防止 rsync 從您的目的地刪除任何文件。我不確定哪個標誌可以做到這一點。也許

man rsync

應該幫助你?

引用自:https://serverfault.com/questions/554762