使用unison做双向实时同步

之前做同步一直使用的是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

后台运行吧,或者加入到开机启动中,这儿就不多说啦!!!    搜衣贼啦是不是???

你可能感兴趣的:(使用unison做双向实时同步)