之前做同步一直使用的是rsync , 现在的项目部署中要用到双向同步,网上找了找,发现unison可以满足,在些将安装及使用笔记整理并发布上来,有不足之处大家多多指导,便于我及时更正。
两台机器均配置unison,以下在centos6.4 64位下安装测试,两台服务器我这儿用第一台,第二台代替。
1.安装ocaml
下载地址:http://caml.inria.fr
tar xf ocaml-4.00.1.tar.gz cd ocaml-4.00.1 ./configure make world opt make install cd ..
2.安装unison
下载地址:www.seas.upenn.edu/~bcpierce/unison/
tar xvf unison-2.40.102.tar.gz cd unison-2.40.102 make UISTYLE=text这儿在编译后会提示我错误etags,不用管它。直接执行下面的命令,完事了。。
cp unison /usr/local/bin cd ..
这样 unison的安装就完成了
因为要做实时的更新,所以这儿我用的是inotifywait
下载地址:http://inotify-tools.sourceforge.net
tar xvf inotify-tools-3.14.tar.gz cd inotify-tools-3.14 ./configure make make install cd ..
配置双机ssh信任
第一台
ssh-keygen -t rsa cd ~/.ssh scp -r id_rsa.pub 本机IP:/root/.ssh/authorized_keys
第二台
ssh-keygen -t rsa cd ~/.ssh scp -r id_rsa.pub 本机IP:/root/.ssh/authorized_keys
第一台
scp -r id_rsa.pub 第二台IP:/root/.ssh/authorized_keys
第二台
scp -r id_rsa.pub 第一台IP:/root/.ssh/authorized_keys
测试下
ssh 另一台ip地址 date
若显示服务器时间则成功
参考此教程:http://www.lvtao.net/server/ssh-no-password.html
开始做双机同步的,写一个SH脚本,丢进后台完事了。。两台机器都要的哟!!
#/bin/bash UNISON=`ps -ef |grep -v grep|grep -c inotifywait` if [ ${UNISON} -lt 1 ] then ip="另一台的IP" src="/home/www/" dst="/home/www/" /usr/local/bin/inotifywait -mrq -e create,delete,modify,move $src | while read line do /usr/local/bin/unison -batch $src ssh://$ip/$dst done fi
后台运行吧,或者加入到开机启动中,这儿就不多说啦!!! 搜衣贼啦是不是???