Unison 是同步和传送整个目录树的绝佳解决方法。可以双向执行同步,并通过直观的图形化前端控制同步。还可以使用控制台版本。同步可以自动执行,所以不必与用户交互,但这需要一定经验。
必须在客户机和服务器上同时安装 Unison。在这种上下文环境中,服务器一词指另一台远程主机(不同于 CVS,如第 47.1.2 节 “CVS”中所述)。
下一节中将讨论如何将 Unison 与 ssh 一同使用。一同使用时,必须将 SSH 客户程序安装在客户机上,将 SSH 服务程序安装在服务器上。
Unison 所用的方法是将两个目录(根目录)关联起来。这种关联是象征性的,即不是在线连接。在本例中,目录布局如下所示:
客户机: |
|
服务器: |
|
您需要同步这两个目录。客户机上的用户是 tux,服务器上的用户是 geeko。首先要做的是测试客户机与服务器是否能够通讯:
unison -testserver /home/tux/dir1 ssh://geeko@server//homes/geeko/dir2
最常遇到的问题包括:
客户机和服务器上的 Unison 版本不兼容。
服务器不支持 SSH 连接。
这两个指定路径均不存在。
如果一切正常,省略选项 -testserver。在首次同步期间,Unison 并不了解这两个目录之间的关系,所以会针对各个文件和目录的传送方向提出建议。列中的箭头指示传送方向。问号表示 Unison 无法就传送方向提出建议,因为两个版本均已更改或者都是新的。
使用箭头键可为单个项设置传送方向。如果所有显示项的传送方向都正确,只需单击。
通过在启动 Unison 时指定命令行参数,可以控制该程序的特性(例如,是否以透明方式自动执行同步)。使用 unison --help 可以查看所有参数的完整列表。
例 47.1. 文件 ~/.unison/example.prefs
root=/home/tux/dir1 root=ssh://wilber@server//homes/wilber/dir2 batch=true
对于每组目录,都会在用户目录 ~/.unison 中维护一个同步日志。也可以在此目录中储存配置集,如 ~/.unison/example.prefs。要启动同步,将此文件指定为命令行参数,如 unison example.prefs 所示。
Unison 的正式文档非常有用。故此,本节只作简要介绍。完整的手册在 http://www.cis.upenn.edu/~bcpierce/unison/ 和 SUSE 软件包 unison 中提供。