鸿 网 互 联 www.68idc.cn

通过Unison实现CentOS 5.5下文件的双向同步

来源:互联网 作者:佚名 时间:2012-09-19 10:06
Unison是Windows、Linux以及其他Unix平台下都可以使用的文件同步工具,它能使两个文件夹(本地或网络上的)保持内容的一致,拥有与其它一些同步工具或文件系统的相同的特性,但也有自身的特点: 1)支持跨平台使用; 2)对内核和用户权限没有特别要求; 3)U
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@linuxso.com ~]# cd /usr/local/src
[root@linuxso.com ~]# 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@linuxso.com ~]# cp unison /usr/local/bin
[root@linuxso.com ~]# ll /usr/local/bin
总计 1480
-rwxr-xr-x 1 root root 1508530 04-06 11:03 unison
二、配置ssh key信任
建议通过普通用户进行操作,理由是通过root操作本身就危险,免密码登陆的root就更危险了。
1)分别在两台服务器上创建用户:admin
[root@linuxso.com ~]# useradd -m admin
[root@linuxso.com ~]# passwd admin
[root@linuxso.com ~]# useradd -m admin
[root@linuxso.com ~]# passwd admin
2)在master上创建key并配置slave的信任
[root@linuxso.com ~]# su - admin
[admin@linuxso.com ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/admin/.ssh/id_rsa):
Created directory '/home/admin/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/admin/.ssh/id_rsa.
Your public key has been saved in /home/admin/.ssh/id_rsa.pub.
The key fingerprint is:
74:b9:99:6a:24:a1:e8:d7:64:46:65:ad:86:60:0e:ad admin@linuxso.com ~]$ scp ~/.ssh/id_rsa.pub admin@linuxso.com ~]$ ssh admin@linuxso.com ~]$ mkdir .ssh
[admin@linuxso.com ~]$ chmod 700 .ssh
[admin@linuxso.com ~]$ mv ~/id_rsa.pub ~/.ssh/authorized_keys
[admin@linuxso.com ~]$ chmod 600 ~/.ssh/authorized_keys 
4)同理,执行以下步骤在slave主机上创建key并配置master主机的信任
[root@linuxso.com ~]# su - admin
[admin@linuxso.com ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/admin/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/admin/.ssh/id_rsa.
Your public key has been saved in /home/admin/.ssh/id_rsa.pub.
The key fingerprint is:
50:71:69:00:20:49:a7:18:7f:10:79:b4:31:04:95:62 admin@linuxso.com ~]$ scp ~/.ssh/id_rsa.pub admin@linuxso.com ~]$ ssh admin@linuxso.com ~]$ mv ~/id_rsa.pub ~/.ssh/authorized_keys
5)重启两台服务器的SSH服务
[root@linuxso.com ~]# /etc/init.d/sshd restart
[root@linuxso.com ~]# /etc/init.d/sshd restart
三、Unison的配置与使用
在两台服务器上创建test目录,用于测试
[root@linuxso.com ~]# su - admin
[admin@linuxso.com ~]$ mkdir test
[root@linuxso.com ~]# su - admin
[admin@linuxso.com ~]$ mkdir test
在两台服务器上分别执行一次unison,出现提示确认,则直接敲回车选择默认值
[admin@linuxso.com ~]$ unison /home/admin/test/ ssh://admin@linuxso.com ~]$ unison /home/admin/test/ ssh://admin@linuxso.com ~]$ vim /home/admin/.unison/default.prf
#Unison preferences file
 
root = /home/admin/test
root = ssh://admin@linuxso.com ~]$ vim /home/admin/.unison/default.prf
#Unison preferences file
 
root = /home/admin/test
root = ssh://admin@linuxso.com ~]$ cd test
[admin@linuxso.com ~]$ cd test
[admin@linuxso.com ~]$ crontab -e
*/5 * * * * /usr/local/bin/unison
[admin@linuxso.com ~]$ crontab -e
*/5 * * * * /usr/local/bin/unison
网友评论
<