首页 > 其他 > 详细

利用unison+inotify 实现数据双向实时同步

时间:2015-07-27 16:34:47      阅读:268      评论:0      收藏:0      [点我收藏+]


利用unison+inotify 实现数据双向实时同步


环境:Centos 6.5 64位

   server1 :192.168.1.201

   server2 :192.168.1.250

需求软件:ocaml unison inotify

我这里全是使用yum安装的,若是喜欢使用源码编译安装的可以官网下载源码包。

   yum install ocaml unison inotify 


第一步:保证两台服务器之间可以通过ssh无密码访问,为了安全,需要创建一个普通用户:

两边执行的步骤一样:

    useradd unison

    passwd unison

    su - unison

    ssh-keygen -t rsa (直接三次回车即可)

    mkdir .ssh

    scp .ssh/id_rsa.pub 192.168.1.250:/home/unison/.ssh/authrized_keys

    scp .ssh/id_rsa.pub 192.168.1.201:/home/unison/.ssh/authrized_keys 

    chmod 600 .ssh


第二步:创建shell脚本来执行同步

 在server1 上

  vim /home/unison/inotify.sh

#! /bin/bash

ip2="192.168.1.250"

src2="/home/unison/test"

dst2="/home/unison/test"

/usr/bin/inotifywait -mrq -e create,delete,modify,move $src2 | while read line; do

/usr/bin/unison -batch $src2 ssh://$ip2//$dst2

echo -n "$line" >> /home/unison/inotify.log

echo `date| cut -d ‘ ‘ -f1-4` >> /home/unison/inotify.log

done

在server2 上创建脚本:

#! /bin/bash

ip1="192.168.1.201"

src1="/home/unison/test"

dst1="/home/unison/test"

/usr/bin/inotifywait -mrq -e create,delete,modify,move $src1 | while read line; do

/usr/bin/unison -batch $src1 ssh://$ip1//$dst1

echo -n "$line" >> /home/unison/inotify.log

echo `date| cut -d ‘ ‘ -f1-4` >> /home/unison/inotify.log

done

        

最后分别在两台服务器上执行脚本即可,

若想开机启动,可以加入到/etc/rc.d/rc.local中。

本文出自 “浅浅的淡淡” 博客,请务必保留此出处http://cuixiang.blog.51cto.com/8204722/1678737

利用unison+inotify 实现数据双向实时同步

原文:http://cuixiang.blog.51cto.com/8204722/1678737

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!