27.3. Unison 的介紹

Unison 是同步化和傳輸整個目錄樹狀結構的最佳解決方案。同步化是以雙向執行,而且可以透過直覺式圖形前端程式來控制。也可以使用主控台版本。同步化也可以自動化,因此不需要與使用者互動,但是經驗是必要的。

27.3.1. 需求

Unison 必須安裝在用戶端以及伺服器上。在此環境中,伺服器 一詞是指第二部遠端主機 (與 CVS 不同,詳述於 節 27.1.2, "CVS")。

在下一小節中,Unison 是與 ssh 一起使用。在此例中,必須在用戶端上安裝 SSH 用戶端,並在伺服器上安裝 SSH 伺服器。

27.3.2. 使用 Unison

Unison 所使用的方法是兩個目錄 (roots) 彼此互相關聯。此關聯是象徵性的 它不是線上的連線。以此為例,目錄配置如下列所示:

用戶端:

/home/tux/dir1

伺服器:

/home/geeko/dir2

您想要同步化這兩個目錄。使用者在用戶端上的身份為 tux,在伺服器上的身份為 geeko。第一件要做的事就是測試用戶端與伺服器之間的通訊是否可運作:


unison -testserver /home/tux/dir1 ssh://geeko@server//homes/geeko/dir2

最常遭遇的問題為:

  • 在用戶端與伺服器上使用的 Unison 版本是不相容的。

  • 伺服器並不允許 SSH 連線。

  • 兩個指定的路徑都不存在。

如果每個項目都可以運作,請省略 -testserver 選項。在第一次同步化期間,Unison 並不知道兩個目錄之間的關係,並且會針對個別檔案與目錄的傳輸方向送出建議。在 動作 資料欄中的箭頭會指出傳輸的方向。問號表示 Unison 無法建議傳輸方向,因為兩個版本都已經變更或者是新的版本。

方向鍵可以用來設定個別項目的傳輸方向。如果所有顯示項目的傳輸方向都正確,則只要按一下

若要控制 Unison 的特性 (例如,對於沒有衝突錯誤的檔案是否要自動執行同步化),可以在啟動該程式時,利用指定的指令行參數來控制。使用 unison  --help 可檢視所有參數的完整清單。

範例 27.1. ~/.unison/example.prefs 檔案

root=/home/tux/dir1
root=ssh://wilber@server//homes/wilber/dir2
batch=true

使用者目錄 ~/.unison 會為每一組同步化資料保留一個同步化日誌。組態集合,像是 ~/.unison/example.prefs,也可以儲存在此目錄中。若要啟動同步化,請依照 unison  example.prefs 中所示,將此檔案指定為指令行參數。

27.3.3. 如需詳細資訊

Unison 的官方文件特別有用。因此,本小節只提供簡短的介紹。完整的手冊可在 http://www.cis.upenn.edu/~bcpierce/unison/ 中以及在 SUSE 套件 unison 中找到。