实时双向同步实现

Posted sdifens

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实时双向同步实现相关的知识,希望对你有一定的参考价值。

环境:

linux :内核3.0以上

同步工具:

rsync&sersync

资料:https://rsync.samba.org/examples.html

要求:须以root实现一下操作,否则容易失败

rsync是文件或目录同步的常用工具,尤其在分布式系统下进行同步,可以通过自写脚本调用该命令的方式实现,但现在有更加容易实现的方法,通过以上工具以配置文件的形式实现实时双向同步。

第一步:安装rsync

yum -y install xinetd rsync   

xinetd --是用来管理rsync的

rsync--同步工具

sersync--监控目录

第二步:配置rsync

这里范围A服务器和B服务器,双向同步目录为:/ftp

在A服务器配置如下:

uid = root
gid = root

#设置本服务器所监听网卡接口的ip地址
address=A_ip

#设置服务器监听的端口号,默认是873
port=873

 #设置哪些主机可以同步数据,多ip和网段之间使用空格分隔
hosts allow=B_ip

  #除了hosts allow定义的主机外,拒绝其他所有

hosts deny=*  

use chroot = yes

#设置并发连接数,0表示无限制

max connections = 5

#设置rsync进程号保存文件名称
pid file = /var/run/rsyncd_bak.pid

#设置锁文件名称
lock file=/var/run/rsync_bak.lock

#设置日志文件名,可通过log format参数设置日志格式
log file=/var/log/rsyncd_bak.log

#开启rsync数据传输日志功能

transfer logging = yes   
[buckup]  #模块名称
path=/buckup
comment=used for web-data root #模块注释

#是否允许客户端上传数据,yes表示不允许
read only=false

 #客户端请求显示模块列表时,本模块名称是否显示,默认为true
list=yes
auth users=usera
secrets file =/etc/rsync.passwd

密码验证文件:

vim /etc/rsync.passwd

格式:usera:123456  --用户是rsyncd.conf里的auth users,密码随便写

授权:chmod 600 /etc/rsync.passwd

分别在A、B服务器上建立共享目录: mkdir /buckup

A服务器配置完后启动rsync:

 rsync --daemon --config=/etc/rsyncd.conf

在B服务器执行:rsync -avz /buckup rsyncuser@192.168.108.200::buckup

输入密码:123456

注意这里可以通过加 --password-file=/etc/rsync.passwd的方式自动登录:密码文件放在B服务器,这里的密码必须与A密码文件的密码一致

这里就完成了B服务器的数据同步到A服务器,采用的时推送消息模式

 

以上是关于实时双向同步实现的主要内容,如果未能解决你的问题,请参考以下文章

配置 Rsync + inotify 实现文件服务器数据实时双向同步

Unison+inotify实现两个主机目录之间的数据双向同步

服务器间文件实时双向同步(rsync+inotify)

UNISON+inotify数据的双向实时同步

angular.js 中同步视图和模型数据双向绑定,$watch $digest $apply 机制

局域网内两台电脑怎么双向同步文件?