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

  1. mysql数据库双向实时同步

    1.需求描述 近期一个项目需要实现两个数据库间的数据双向实时同步. 2.解决思路 打算采用双主的架构实现这个需求,但是通常双主架构是为了备份,不是为了多点写入,所以实际项目中多个系统只访问双主中 的一 ...

  2. rsync+sersync实现数据文件实时同步

    rsync+sersync实现数据文件实时同步 使用rsync+sersync,实现nfs与backup服务器间实时数据同步 一.数据同步工具介绍 rsync是一款开源的.快速的.多功能的.可实现全量 ...

  3. linux 文件双向同步,Linux文件双向实时同步rsync

    在线QQ客服:1922638 专业的SQL Server.MySQL数据库同步软件 echo"/usr/sersync/sersync2-d-o/usr/sersync/confxml.xm ...

  4. rsync+inotify实现文件增量实时同步

    rsync+inotify实现文件增量实时同步 项目环境 防火墙{项目环境,不是必要条件} 项目需求 一.rsync安装部署 1.检查是否安装rsync 2.测试系统rsync命令 3.新建配置文件 ...

  5. Oracle 数据怎么实时同步到 MySQL | 亲测干货分享建议收藏

      摘要: 这段时间负责一个老项目开发的数据库管理工作,这个项目中开发库与测试数据库分离,其中有些系统表数据与基础资料数据经常需要进行同步,相信很多 DBA 同学经常会遇到要从一个数据库实时同步到另一 ...

  6. Oracle 数据怎么实时同步到 Kafka | 亲测干货分享建议收藏

     摘要: 很多 DBA 同学经常会遇到要从一个数据库实时同步到另一个数据库的问题,同构数据还相对容易,遇上异构数据.表多.数据量大等情况就难以同步.我自己亲测了一种方式,可以非常方便地完成 Oracl ...

  7. Oracle 数据怎么实时同步到 SQL Server | 亲测干货分享建议收藏

    摘要: 很多 DBA 同学经常会遇到要从一个数据库实时同步到另一个数据库的问题,同构数据还相对容易,遇上异构数据.表多.数据量大等情况就难以同步.我自己亲测了一种方式,可以非常方便地完成 Oracle ...

  8. Oracle 数据怎么实时同步到 PgSQL | 亲测干货分享建议收藏

    摘要: 这段时间负责一个老项目开发的数据库管理工作,这个项目中开发库与测试数据库分离,其中有些系统表数据与基础资料数据经常需要进行同步,相信很多 DBA 同学经常会遇到要从一个数据库实时同步到另一个数 ...

  9. Oracle 数据怎么实时同步到 MongoDB | 亲测干货分享建议收藏

    摘要: 很多 DBA 同学经常会遇到要从一个数据库实时同步到另一个数据库的问题,同构数据还相对容易,遇上异构数据.表多.数据量大等情况就难以同步.我自己亲测了一种方式,可以非常方便地完成 Oracle ...

最新文章

  1. mysql 分组 列转行_mysql列转行以及年月分组实例
  2. [YTU]_2576( 虚函数练习:动物2)
  3. 【ABAP增强】基于BADI的增强
  4. xtend怎么使用_使用Xtend构建Vaadin UI
  5. 静态链表(代码、分析、汇编)
  6. Linux 挂载windows网络共享文件 /etc/fstab功能详解
  7. mac系统升级后使用gitxcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), miss
  8. Vercel反向代理做CDN,免费给网站加速隐藏源站,可绑定域名
  9. 马斯克自曝曾寻求苹果600亿美元收购特斯拉 但库克拒绝会面
  10. 【hue】 There are currently no roles defined
  11. centos解压分卷rar_centos解压和压缩rar格式文件
  12. 分布式服务弹性框架“Hystrix”实践与源码研究(一)
  13. 给editplus加一个主题
  14. 基于几何学习图像的三维重建发展_基于深度学习的三维重建——MVSNet系列论文解读...
  15. 深度学习CUDA最新最佳安装教程
  16. CUDA C/C++ 教程一:加速应用程序
  17. android 获取本地视频文件以及缩略图
  18. git小乌龟的安装和使用教程
  19. CF128A Statues 解题报告
  20. Activision解散《吉他英雄》,取消《真实犯罪》

热门文章

  1. 只允许对最后一条记录进行修改
  2. 二元函数图像生成器_GAN生成图像综述
  3. php修改js内容,js怎样修改html元素的内容?HTML DOM实现修改内容
  4. 编写第一个Java程序:helloworld
  5. MySQL备份恢复与日志
  6. 出现这些迹象,说明你面试可能没戏了
  7. 单独组件_阿里P8年薪百万大牛-教你打造一个Android组件化开发框架
  8. python3 携程_多任务(3):协程
  9. 《大数据》2015年第3期“研究”——大数据流式计算:应用特征和技术挑战
  10. 作者:潘永花,阿里数据经济研究中心秘书长,阿里研究院高级专家。