第 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

与“演进而来的”CVS 相比,Subversion (SVN) 是一个在设计上始终如一的项目。Subversion 实际上是在技术上经过改进的 CVS。

Subversion 对 CVS 在很多方面都作了改进。由于历史原因,CVS 只维护文件而忽略了目录。而在 Subversion 中,目录也有版本历史记录,并且完全可以像文件那样复制和重命名。还可以向每个文件和每个目录添加元数据。通过版本控制可以全面维护这些元数据。不同于 CVS,Subversion 支持通过专用协议(如 WebDAV - 基于万维网的分布式创作和版本控制)进行透明的网络访问。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/ 获取。