实时双向同步实现
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实现两个主机目录之间的数据双向同步