2012-09-17 76 views
27

我想有一個文件夾與其所有子樹的同步副本。如何保持兩個文件夾自動同步?

它應該以自動方式工作;每當我創建,修改或刪除原始文件夾中的員工時,必須將這些更改自動應用於同步文件夾。

這是完成此任務的最佳方法?

BTW:我在Ubuntu 12.04

的最終目標是有一個分開的實時備份,而無需使用符號連接O實際安裝的。 我使用Ubuntu One在我的電腦之間同步數據,過了一段時間出現問題並且所有數據在同步過程中都丟失了。

因此,我認爲,進一步增加了一步,以保持我的數據的備份副本:

  • 我一直保存在我的數據「文件夾中的」
  • 我需要我的當前問題的答案創建「文件夾A」到「文件夾B」的單向同步(cron腳本與rsync?可能是?)。我需要它從A到B只有一個辦法,到B的任何變化必須不能應用於A.
  • 的,我只是保持同步「的文件夾B」與Ubuntu一個

    在這種方式中的任何改變A將被應用於B,這將從U1中檢測到並同步到雲端。
    如果出現任何錯誤,U1刪除第B我的數據,我總是有他們A.

通過lanzz的意見的啓發,另一個想法可能是在啓動時運行rsync將備份文件夾下的內容Ubuntu One,並且只有在rsync完成後才啓動Ubuntu One。 您對此有何看法? 那麼如何知道rsync何時結束?

+0

你想完成什麼?這些文件夾是否真的需要分開,不能將一個名稱與另一個名稱鏈接,或將[bind-mount](https://www.google.com/search?q=linux+mount+bind)目錄與次要位置?另外,請查看[這些搜索結果](https://www.google.com/search?q=sync+inotify)。 – lanzz

+0

@lanzz:請參閱我的編輯 –

+0

我建議_against_通過cron支持實時實時同步(即連續觀察源目錄中的文件更改),以支持定期的'rsync'。 – lanzz

回答

14

看看rsync,教程例如here

也看看onchange script

+1

@alfC:與之相反,Google不會永久緩存頁面。改用WaybackMachine。 – Nirmal

24

您可以使用inotifywait(啓用modify,create,delete標誌)和rsync

while inotifywait -r -e modify,create,delete /directory; do 
    rsync -avz /directory /target 
done 
相關問題