Unison是一款免费的、跨平台的文件同步工具;有了它,我们就能够将两套文件副本(实例)保存在两个不同的平台上,或保存在同一个系统的不同磁盘上。不像简单的镜像方法或备份实用工具,Unison可以同时更新分布式目录结构的两个副本。它可以检测并显示有冲突的更新。而且不像分布式文件系统,Unison是一款用户级程序;不需要改动内核,也没必要在任何一个主机上都要拥有根用户权限。
Unison可在与互联网连接的任何一对机器之间使用,通过直接套接层链路或基于加密SSH连接的隧道进行联系。它谨慎使用网络带宽,在PPP连接等慢速链路上可以顺畅地使用。可以使用一种类似rsync的压缩协议,优化将小容量更新传送到大文件的操作。
相关阅读:
Debian 使用Unison双向同步文件 http://www.linuxidc.com/Linux/2012-02/54173.htm
通过Unison实现CentOS 5.5下文件的双向同步 http://www.linuxidc.com/Linux/2012-04/58152.htm
双向同步软件Unison的安装与配置 http://www.linuxidc.com/Linux/2012-01/51809.htm
利用Unison实现双向同步镜像 http://www.linuxidc.com/Linux/2012-02/54172.htm
在这篇实用文章中,我使用了两台运行Ubuntu的系统。本地系统运行Ubuntu桌面版,其IP地址是192.168.1.100/24;而远程系统则运行Ubuntu服务器版,其IP地址是192.168.1.201/24。我还准备在这两个系统之间同步目录/home/sk/Unixmen。请根据你的具体情况,更改相应值。
安装Unison
在本地和远程服务器系统上安装:
使用下列两个命令,更新和升级这两个系统:
sudo apt-get update sudo apt-get upgrade
在两个系统上安装Unison。
sudo apt-get install unison unison-gtk
配置
现在在你的本地系统上,从Menu(菜单)或Dash启动Unison GUI工具。它的界面看起来应该如下。
首先,我们得为同步过程创建一个新的配置文件。点击Add(添加),即可创建一个新的配置文件。点击Forward(下一步)。
输入新配置文件的名称,点击Forward(下一步)。
这里会要求你选择同步方法。我想使用SSH,在本地桌面与远程服务器之间同步文件。于是我在这里从Synchronization Kind(同步类别)下拉框中选择Using SSH(使用SSH)。然后输入远程主机服务器的IP地址和用户名称,如下所示,点击Forward(下一步)。
现在,我们得指定需要复制的本地文件夹和远程文件夹。在Local Directory(本地目录)框里面输入本地文件夹的路径(如本文中的/home/sk/Unixmen),在Remote Directory(远程目录)框里面输入远程文件夹的路径。点击Forward(下一步)。
如果你同步FAT分区里面的任何文件夹,请勾选FAT Partition(FAT)分区,然后点击Forward(下一步)。
最后点击Apply(应用)。
我们已成功地创建了配置文件。点击Open(打开)即可开始。
它会要求你输入远程系统用户密码。输入密码,点击OK(确定)。
如果你头一次使用该应用程序,你会得到如下所示的一段警告信息。点击Ok(确定),继续操作。
现在,你会看到类似这样的屏幕。
把你想要复制的文件夹或文件放入到同步文件夹(/home/sk/unixmen),点击Go(开始同步)。一切都会在幕后进行。
现在查看远程系统里面的文件。它们应该肯定就在那里。如果你添加了一个新的文件或文件夹,点击Rescan(重新扫描);之后,点击Go(开始同步),即可开始同步了。
sk@server1:~$ ls /home/sk/Unixmen/ New1 New2 New3
就这样,开始享用吧。你刚才看到的上面这些只是Unison的一个基本概念。你可以用Unison处理许多任务。我建议你仔细阅读官方文档,以获取更多信息。
更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2