Linux
使用 rsync 跨兩台伺服器同步目錄(或同步目錄的替代方法)
我有兩個虛擬機應該在這個目錄中有相同的文件:
/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
應該幫助你?