2013年(4)
分类: LINUX
2013-04-22 16:35:03
Unison是Windows、Linux以及其他Unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致,拥有与其它一些同步工具或文件系统的相同的特性,但也有自身的特点:
1)支持跨平台使用;
2)对内核和用户权限没有特别要求;
3)Unison是双向的,它能自动处理两分拷贝中更新没有冲突的部分,有冲突的部分将会显示出来让用户选择更新策略;
4)只要是能连通的两台主机,就可以运行unison,可以直接使用socket连接或安全的ssh连接方式,对带宽的要求不高,使用类似rsync的压缩传输协议。
环境如下:
master:192,.168.1.80
slave:192.168.1.88
一、编译安装Unison
Linux下通过源码包编译安装Unison时,需要用到Objective Caml compiler。
1)编译安装ocaml
[root@master ~]# cd /usr/local/src
[root@master src]# wget
[root@master src]# tar -zxvf ocaml-3.12.1.tar.gz
[root@master src]# cd ocaml-3.12.1
[root@master ocaml-3.12.1]# ./configure
[root@master ocaml-3.12.1]# make world opt
[root@master ocaml-3.12.1]# make install
2)编译安装Unison
[root@master src]# tar -zxvf unison-2.40.63.tar.gz
[root@master src]# cd unison-2.40.63
[root@master unison-2.40.63]# make UISTYLE=text
[root@master unison-2.40.63]# make install
在执行make install的过程中,出现以下错误提示:
make[1]: Leaving directory `/usr/local/src/unison-2.40.63'
mv /root/bin//unison /tmp/unison-10558
mv: 无法 stat “/root/bin//unison”: 没有那个文件或目录
make: [doinstall] 错误 1 (忽略)
cp unison /root/bin/
cp: 无法创建一般文件“/root/bin/”: 是一个目录
make: *** [doinstall] 错误 1
出现错误的原因在于Unison默认是将文件Copy到/root/bin目录,但Linux默认是没有该目录的,因此需要将生成的可执行文件unison复制到系统的PATH目录。
[root@master bin]# whereis $PATH #查看系统的PATH目录
bin: /usr/local/bin
[root@master unison-2.40.63]# cp unison /usr/local/bin
3)将可执行文件unison上传到远程主机slave:192.168.1.88
[root@master unison-2.40.63]# scp unison root@192.168.1.88:/root/
The authenticity of host '192.168.1.88 (192.168.1.88)' can't be established.
RSA key fingerprint is 57:7a:b5:4d:fa:6d:37:db:70:12:c6:54:87:6b:7b:f8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.88' (RSA) to the list of known hosts.
root@192.168.1.88's password:
unison 100% 1473KB 1.4MB/s 00:01
4)通过SSH登陆到远程主机slave ,再将unison复制到slave的PATH目录
[root@master unison-2.40.63]# ssh 192.168.1.88
root@192.168.1.88's password:
Last login: Fri Apr 6 09:59:35 2012 from 192.168.1.96
[root@slave ~]# ll
总计 1536
-rw------- 1 root root 1026 01-24 19:17 anaconda-ks.cfg
drwxr-xr-x 2 root root 4096 02-28 21:52 Desktop
-rw-r--r-- 1 root root 26313 01-24 19:16 install.log
-rw-r--r-- 1 root root 4343 01-24 19:08 install.log.syslog
-rwxr-xr-x 1 root root 1508530 04-06 10:56 unison
[root@slave ~]# cp unison /usr/local/bin
[root@slave ~]# ll /usr/local/bin
总计 1480
-rwxr-xr-x 1 root root 1508530 04-06 11:03 unison