如何在多台電腦之間同步主資料夾?

如何在多台電腦之間同步主資料夾?

我家裡有三台計算機,希望/home/在三台計算機之間同步資料夾樹。
在三台電腦中的一台中修改/新增/刪除的任何檔案/資料夾(隱藏的檔案/資料夾除外)都會在另外兩台電腦中更新。

rsync足以做到這一點嗎?如何?

答案1

這裡列出了可能解決此問題的一些事項,每種事項都平衡了您必須做出不同的權衡,因此您必須做出自己的選擇並親自嘗試:

  • 齊奏- 正如其他人所提到的,這是手動運行的,但非常快速、可靠和有效。要求兩台機器同步同時開啟。它有一個很好的用戶介面,可以讓您處理幾乎不可避免的衝突,並正確追蹤和傳播刪除。圖形應用程式/包稱為 unison-gtk。

  • 自己的雲- 雲端儲存在您自己的伺服器上運行。你需要一台機器才能離開。需要合理的設定。在伺服器上執行完整的 Apache 2 Web 伺服器和 SqlLite 或 MySQL 資料庫。與桌面用戶端的 Dropbox 類似,但伺服器由您控制。編輯:OwnCloud 最近在專案運作方式上進行了一些更改,現在以以下形式提供了一個新的完全開源(即沒有閉源「企業」版本)下雲,(看這個YouTube 採訪與原始 OwnCloud 開發人員聯繫以了解更多詳細資訊)。

  • 閃耀分享- 使用 git 保持檔案同步。根據主頁:適合許多較小的文件,不適合許多大文件,例如音樂或照片集。

  • 海洋文件- 提供可安裝在本機上的伺服器元件。 Seafile 使用資料模型類似於 git用於追蹤更改。提供適用於桌上型電腦、平板電腦和智慧型手機的同步用戶端。描述設定的部落格文章可以在以下位置找到:http://openswitch.org/blog/2013/07/18/installing-and-configuring-seafile-on-ubuntu-12-dot-04/

  • 奧同步- 「...用 bash 編寫並基於 rsync 的雙向檔案同步工具。它透過 ssh 隧道在本地和/或遠端目錄上工作。它的主要目標是作為 cron 任務啟動」(來自網站的文字)

  • 強力資料夾- 基於java的GPL v2專案。主網站推送商業產品,因此不清楚如何使用提供的 .jar 檔案。

  • 同步- 快速有效,已經存在了幾十年,但是它不保留歷史記錄,因此您必須選擇一個方向來決定文件是新文件還是刪除文件。可以使用圖形工具,例如網關同步

  • 左同步- 監視資料夾/檔案以觸發 rsync 複製

  • dvcs 自動同步- 用Python編寫,使用git在機器之間儲存和共享更改,並使用XMPP來傳達更改。

  • git 附件- 基於 git 的用於分流檔案的命令列工具。這裡有一個說明性的演練:http://git-annex.branchable.com/walkthrough/

  • 東尼多- 免費軟體。提供可將檔案共用到其他裝置的桌面應用程式。也提供商業雲產品和 TonidoPlug 插頭計算機。

  • BitTorrent 同步(免費軟體)- 基於 BitTorrent 的點對點檔案同步。我對此了解不多,因為我不會使用它,因為它不是開源的,也不相信它會將我的數據保存在我的區域網路內,請隨意編輯此答案以提供更好的資訊/真實體驗。

  • 同步事物- 作為 BitTorrent Sync 的開源替代品而開發。它目前缺乏 BitTorrent Sync 的一些高級功能,例如不受信任的對等點。它正在積極開發中。

  • 商業託管服務,如 dropbox、ubuntu one、google Drive、Apple iCloud 都快速、便宜且方便,但它們都需要信任一家擁有您所有資料的公司,並且需要相當快速的網路連線。

  • git/顛覆- 直接使用原始碼控制系統。完全手動,可能有點複雜,但對於一些熟悉這些系統的用戶來說,流行的方法是將它們用作程式設計工具。

  • 雲端檔案系統- 同步整個檔案系統,基於叢集技術

  • NFS 安裝 - 基本上你的家住在一台機器上,你透過網路存取它,這對你隨身攜帶的筆記型電腦沒有好處。更多資訊:http://www.linuxjournal.com/article/4880


做出決定時要考慮的因素:

  • 中央伺服器 - 某些解決方案要求一台機器始終處於開啟狀態(或至少在需要同步時),以便其他機器與之同步。這可以是您現有的一台計算機,也可以是一台單獨的計算機,例如 NAS。留意增加的電費。

  • 自動/手動/計劃 - 避免解決在多個機器上發生更改的衝突的最佳方法是在每台機器上都有一個程式來監視更改並立即同步,這樣您就可以減少最終出現多個更改的機會版本。對於手動流程,您始終必須記住要運行同步。

  • 遠端存取 - 您想要在遠離 LAN(也稱為家庭)的地方進行同步嗎?

  • 安全性 - 您的資料離開網路時是否加密,機器之間傳輸的安全性如何。如果有人在移動過程中捕獲您的數據,後來發現加密有缺陷怎麼辦?誰控制著保存您資料的伺服器,資料是否加密,您可以信任任何第三方嗎?您是否必須在路由器上打孔才能進行遠端存取。 「已刪除」檔案和相關元資料在同步設備和中央伺服器上保留多久。您是否在加密和未加密儲存之間進行同步?

  • 移動大資料夾 - 我嘗試過的解決方案都有一個問題,當您移動/重命名檔案或資料夾時,同步無法理解這一點,並將其作為新檔案重新上傳,然後刪除舊副本。

  • 磁碟容量

  • 備份 - 同步不是備份。錯誤地刪除一個重要文件,上面的許多操作都會愉快地刪除所有其他副本。我推薦閱讀Mat Honan 關於被駭客攻擊的文章可以這麼說,很好地說明瞭如果將所有數位雞蛋放在一個數位籃子中會發生什麼。


我建議不要同步整個主資料夾,而是選擇要同步的特定資料夾,例如等待Documents/Pictures/它還避免了必須維護排除清單。

當我繼續嘗試找到對我個人有用的東西時,我會嘗試用有用的信息來更新這個答案。我已將所有其他答案中的信息匯總為一個完整的答案。

參考:

  • LinuxFormat - 2014 年 2 月 LXF180 p31,“託管儲存綜述”

駭客攻擊/全部/

答案2

齊奏可能是個不錯的候選人:

Unison 是一個適用於 Unix 和 Windows 的檔案同步工具。它允許檔案和目錄集合的兩個副本儲存在不同的主機(或同一主機上的不同磁碟)上,單獨修改,然後透過將每個副本中的變更傳播到另一個副本來更新。

它已經進行了 2 路同步。請參閱下面的更新。

我了解到 rsync 幾乎沒有做不到的事情,而且它可能可以提供相同或更好的解決方案,但您必須等待 rsync 專家出現才能提供解決方案。

更新:是的,Unison 可以同步 2 台以上的機器。來自他們的使用者手冊:

使用 Unison 同步兩台以上的機器

Unison 設計用於同步副本對。但是,可以使用它透過執行多個成對同步來保持更大的機器組同步。

如果您需要這樣做,最可靠的設定方法是將機器組織成“星形拓撲”,其中一台機器指定為“集線器”,其餘機器指定為“輻條”,並且每個輻條機器同步僅與集線器一起。星形拓撲的一大優點是,它消除了由於 Unison 為其同步的每對主機維護單獨的存檔而引起的令人困惑的「虛假衝突」的可能性。

答案3

如何將檔案放入 SubVersion 或 git 等版本控制系統中?

我不會對整個主目錄進行版本控制,而只會對少數包含一些重要內容的子目錄進行版本控制。但我正在考慮轉換為 git,因為它似乎更適合這種類型的工作。 (快速搜尋會將您引向正確的方向)。

祝你好運


更新:git 的一個很好的副作用是很容易擁有計算機特定的文件,因為你只需要為該計算機創建一個分支(在 git 中你默認得到它)。因此,您不需要在所有計算機中擁有完全相同的文件,它們只需要相似,並且有一個共同的“主”分支,其中包含您在所有不同計算機上想要的內容。

答案4

我認為您可以透過 NFS 安裝通用主資料夾來更好地實現您想要的目標。看看這篇文章http://www.linuxjournal.com/article/4880

相關內容