內容目錄
摘要
今日有許多人使用數台電腦 在家使用一台、在辦公室使用一台或數台電腦,而且可能在外面還使用膝上型電腦或 PDA。許多檔案都需要各存一份在所有這些電腦上。您可能希望能在每一部電腦上工作、修改檔案,之後還能讓所有的電腦都擁有最新的資料。
對於永久以快速網路連結的電腦而言,資料同步化不是問題。在此狀況下,使用 NFS 之類的網路檔案系統,並將檔案儲存在伺服器上,所有主機就可以透過網路來存取相同的資料。但如果網路連線品質很差或不是永久的,就無法使用此方法。當您出門在外使用膝上型電腦時,所有需要的檔案複本都必須在本機硬碟上。不過之後需要將修改過的檔案同步化。當您在某一台電腦上修改檔案時,請確定也更新了所有其他電腦上的同一檔案。至於一些零散的複本,則可以使用 scp 或 rsync 手動更新它。然而,如果有許多檔案需要處理,則該程序有可能變得很複雜,而且需要更小心才能避免類似以舊檔案覆寫新檔案的錯誤。
![]() | 資料遺失的風險 |
|---|---|
在您開始使用同步化系統管理資料之前,應該先好好的認識要使用的程式並測試其功能。對於重要檔案而言,備份是不可或缺的動作。 | |
手動同步化資料非常耗時,而且是一種容易發生錯誤的工作,要避免這些缺點,可以使用一種以多種方法將此工作自動化的程式。下列摘要讓您概略了解這些程式的運作方式和使用方法。如果您打算使用它們,請詳閱程式文件。
Unison 不是網路檔案系統。實際上,只是在本機儲存和編輯檔案。您可以手動執行 Unison 程式,將檔案同步化。第一次執行同步化時,會在兩個主機上建立資料庫,包含總和檢查碼、時戳以及選取檔案的權限。下次執行時,Unison 可以識別哪些檔案已變更,並建議要從其他主機傳輸或傳輸至其他主機。通常可以接受所有的建議。
CVS 主要是用來管理程式來源版本,它使得檔案複本可以保留在多台電腦上。因此,它也適用於資料同步化。CVS 負責維謢伺服器上的中央儲存區,檔案及檔案的變更都儲存在此。在本機上執行的變更會交付至儲存區,並且可以利用更新從其他電腦擷取。兩個程序都必須由使用者起始。
CVS 對於錯誤有非常大的彈性與包容性,所以可以應付多台電腦同時進行變更的情況。變更會合併,而且如果在相同行發生變更,就會報告衝突。衝突發生時,資料庫會維持一致的狀態。只有在用戶端主機上才能看到衝突,並加以解決。
subversion 與不斷演變的 CVS 大不相同,subversion 是一脈相承的開發計劃。subversion 是 CSV 的技術改善後繼加強版。
與舊一代的產品相比,subversion 在許多方面都已大幅改善。由於其傳統包袱之故,CVS 只能維護檔案但卻無法維護目錄。目錄在 subversion 中也有版本歷史,而且可以像檔案一樣進行複製和重新命名。它也可以將中繼資料新增至每個檔案以及每個目錄。使用版本設定就可以充份維護此中繼資料。與 CVS 相反的是,subversion 支援透過專用通訊協定進行通透網路存取,例如 WebDAV (以 Web 為基礎的分散式製作與版本設定)。WebDAV 擴充了 HTTP 通訊協定的功能,而能對遠端網頁伺服器上的檔案進行協同寫入存取。
subversion 大部份是由已經存在的軟體套件組合而成。因此,Apache 網頁伺服器與 WebDAV 延伸程式總是與 subversion 一起執行。