章 27. 檔案同步化

內容目錄

27.1. 可用的資料同步化軟體
27.2. 選取程式時所要考慮的決定性因素
27.3. Unison 的介紹
27.4. CVS 簡介
27.5. Subversion 簡介
27.6. rsync 簡介
27.7. mailsync 簡介

摘要

今日有許多人使用數台電腦 在家使用一台、在辦公室使用一台或數台電腦,而且可能在外面還使用膝上型電腦或 PDA。許多檔案都需要各存一份在所有這些電腦上。您可能希望能在每一部電腦上工作、修改檔案,之後還能讓所有的電腦都擁有最新的資料。


27.1. 可用的資料同步化軟體

對於永久以快速網路連結的電腦而言,資料同步化不是問題。在此狀況下,使用 NFS 之類的網路檔案系統,並將檔案儲存在伺服器上,所有主機就可以透過網路來存取相同的資料。但如果網路連線品質很差或不是永久的,就無法使用此方法。當您出門在外使用膝上型電腦時,所有需要的檔案複本都必須在本機硬碟上。不過之後需要將修改過的檔案同步化。當您在某一台電腦上修改檔案時,請確定也更新了所有其他電腦上的同一檔案。至於一些零散的複本,則可以使用 scp 或 rsync 手動更新它。然而,如果有許多檔案需要處理,則該程序有可能變得很複雜,而且需要更小心才能避免類似以舊檔案覆寫新檔案的錯誤。

[Warning]資料遺失的風險

在您開始使用同步化系統管理資料之前,應該先好好的認識要使用的程式並測試其功能。對於重要檔案而言,備份是不可或缺的動作。

手動同步化資料非常耗時,而且是一種容易發生錯誤的工作,要避免這些缺點,可以使用一種以多種方法將此工作自動化的程式。 下列摘要讓您概略了解這些程式的運作方式和使用方法。 如果您打算使用它們,請詳閱程式文件。

27.1.1. Unison

Unison 不是網路檔案系統。實際上,只是在本機儲存和編輯檔案。您可以手動執行 Unison 程式,將檔案同步化。第一次執行同步化時,會在兩個主機上建立資料庫,包含總和檢查碼、時戳以及選取檔案的權限。下次執行時,Unison 可以識別哪些檔案已變更,並建議要從其他主機傳輸或傳輸至其他主機。通常可以接受所有的建議。

27.1.2. CVS

CVS 主要是用來管理程式來源版本,它使得檔案複本可以保留在多台電腦上。因此,它也適用於資料同步化。CVS 負責維謢伺服器上的中央儲存區,檔案及檔案的變更都儲存在此。在本機上執行的變更會交付至儲存區,並且可以利用更新從其他電腦擷取。兩個程序都必須由使用者起始。

CVS 對於錯誤有非常大的彈性與包容性,所以可以應付多台電腦同時進行變更的情況。變更會合併,而且如果在相同行發生變更,就會報告衝突。衝突發生時,資料庫會維持一致的狀態。只有在用戶端主機上才能看到衝突,並加以解決。

27.1.3. Subversion

Subversion (SVN) 與"不斷演變"的 CVS 大不相同,Subversion 是一脈相承的開發計劃。Subversion 是 CSV 的技術改善後繼加強版。

與舊一代的產品相比,Subversion 在許多方面都已大幅改善。由於其傳統包袱之故,CVS 只能維護檔案但卻無法維護目錄。目錄在 Subversion 中也有版本歷史,而且可以像檔案一樣進行複製和重新命名。它也可以將中繼資料新增至每個檔案以及每個目錄。使用版本設定就可以充份維護此中繼資料。與 CVS 相反的是,Subversion 支援透過專用通訊協定進行通透網路存取,例如 WebDAV (以 Web 為基礎的分散式製作與版本設定)。WebDAV 擴充了 HTTP 通訊協定的功能,而能對遠端網頁伺服器上的檔案進行協同寫入存取。

Subversion 大部份是由已經存在的軟體套件組合而成。因此,Apache 網頁伺服器與 WebDAV 延伸程式總是與 Subversion 一起執行。

27.1.4. mailsync

mailsync 與前面小節所述的同步化工具不同,它只能同步化信箱之間的電子郵件。這個程序可以套用至本機信箱檔案以及 IMAP 伺服器上的信箱。

根據電子郵件標頭所包含的訊息 ID,將個別訊息同步化或刪除。在個別信箱之間與信箱階層之間都可以同步化。

27.1.5. rsync

當不需要版本控制,但是大型目錄結構需要透過緩慢的網路連線進行同步化時,rsync 工具針對僅傳送檔案中的變更可提供已開發成熟的機制。這不只包含文字檔,也包含二進位檔。為了偵測檔案之間的不同,rsync 會將檔案分為區塊並計算它們的檢查總數。

偵測變更將需要付出相當大的成本。要同步化的系統應該要具有相當的硬體配備,才能使用 rsync。RAM 尤其重要。

27.1.6. Novell iFolder

Novell iFolder 讓您隨時隨地都可以存取您的檔案。如果您將檔案放在 iFolder 目錄中,伺服器上便會立即同步更新該檔案。藉由這種方式,您不管在任何地點,都可以進行工作。

Novell iFolder 也可讓您離線工作。這在您沒有網際網路連線時 (例如,在旅行時使用筆記型電腦) 會非常方便。當您成功連線至網際網路後,您變更過的工作內容就會傳送到伺服器。

使用 iFolder 分為以下步驟:

  1. 使用 iFolder 之前,要先登入。

  2. 根據您希望的同步化頻率變更優先設定。

  3. 同步化您的檔案,並檢視您的用戶端與 iFolder 伺服器之間的活動。

  4. 解決同步化期間的任何衝突。當您在兩部不同電腦上變更同一個檔案時,就會發生衝突。iFolder 會將衝突的檔案儲存在不同目錄中,以免資料遺失。

若需有關 iFolder 的詳細資訊,請參閱 http://www.novell.com/en-en/documentation/。若需有關 iFolder 的秘訣和技巧,請參閱 http://www.novell.com/coolsolutions/ifmag/