码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-07-27 16:36:32      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:inotify unison


利用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 实现数据双向实时同步

标签:inotify unison

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!