欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

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

发布时间:2025/3/15 编程问答 71 豆豆
生活随笔 收集整理的这篇文章主要介绍了 利用unison+inotify 实现数据双向实时同步 小编觉得挺不错的,现在分享给大家,帮大家做个参考.


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


环境:Centos 6.5 64位

   server1 :192.168.1.201

   server2 :192.168.1.250

需求软件:ocaml unison inotify-tools

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

   yum install ocaml unison inotify 


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

两边执行的步骤一样:

    useradd unison

    passwd unison

    su - unison

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

    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

        

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

  nohup sh /home/unison/inotify.sh   //加nohup,即可退出当前用户,也可以继续执行此脚本

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

转载于:https://blog.51cto.com/cuixiang/1678737

总结

以上是生活随笔为你收集整理的利用unison+inotify 实现数据双向实时同步的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。