檔案同步化

目錄

39.1. 可用的資料同步化軟體
39.2. 選取程式時所要考慮的決定性因素
39.3. CVS 簡介
39.4. rsync 簡介

摘要

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

可用的資料同步化軟體

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

[Warning]資料遺失的風險

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

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

CVS

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

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

rsync

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

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