您的位置:首页 > 其它

sersync+rsync同步不同主机之间数据

2015-05-03 12:40 369 查看
sersync应用场景如果后端有多台web服务器(如LVS),当我们升级程序或更新文件,需要每台服务器或目录都要更新,繁琐也容易出问题,这时可采用rsync+inotify方式实现文件的触发更新。原理是采用inotify对文件进行监控,当监控到文件发生改变,就调用rsync远程同步。 Sersync简介Sersync利用inotify与rsync对服务器进行实时同步,其中inotify用于监控文件系统事件,rsync是目前广泛使用的同步算法,其优点是只对变动的部分进行操作,其优势大于挂接文件系统方式进行镜像同步。sersync是金山维护的一个开源项目,基于inotify+rsync进行二次开发,目前在国内使用较多。 Sersync特性使用c++编写,只同步发生更改的文件,更加节约时间、带宽

使用多线程进行同步,能保证多个服务器实时保持同步状态

自带出错处理机制,通过失败队列对出错文件重新同步

自带crontab功能,在xml配置文件中开启,即可隔一段时间整体同步一次

案例演示:将192.168.1.5中/www/mingxiao数据同步到192.168.1.6中的/www/mingxiao 安装sersync和inotify,ssh连接192.168.1.5# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/local/sersync
# cd /usr/local/sersync 配置sersync配置文件confxml.xml <head version="2.5">
<host hostip="192.168.1.5" port="8008"></host>#ip及端口号
.......
<sersync>
<localpath watch="/www/mingxiao"> #监控的目录
<remote ip="192.168.1.6" name="xiaoming"/> #同步至哪台主机,及验证的用户
</localpath>
<rsync>
<commonParams params="-zrtopg"/> #rsync参数
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<auth start="true" users="xiaoming" passwordfile="/etc/rsync.pass"/>
</rsync> #验证的用户,及口令文件
<failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once--> #错误日志
<crontab start="true" schedule="300"><!--600mins--> #crontab,多久整体同步一次
....... 编辑 /etc/rsync.pass,添加以下内容,内容为xiaoming用户密码,权限必须为600 xiaoming#chmod 600 /etc/rsync.pass ssh连接至192.168.1.6新增用户,设置密码为xiaoming# useradd xiaoming
# echo xiaoming | passwd --stdin xiaoming 为rsync提供配置文件,编辑/etc/rsyncd.confuid=nobody
gid=nobody
use chroot = no
max connections =10
strict modes = yes
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[xiaoming]
path = /www/mingxiao
comment = xiaoming file
ignore errors
read only = no
write only = no
host allow = 192.168.1.5
list = false
uid = root
gid = root
auth user = xiaoming
secrets file = /etc/server.pass rsync可以独立守护进程方式工作,也可以以超级守护进程方式工作,这里以超级守护进程方式工作# chkconfig rsync on
# service xinetd start Ssh连接到192.168.1.5开始同步
# /usr/local/sersync/sersync2 -r -o /usr/local/sersync/confxml.xml -n 5 -d
sersync命令参数
-r 在开启实时监控前对监控的目录完成一次实时同步
-d 以守护进程方式进行工作
-n 指定开启守护线程数,默认为10个
-o 指定配置文件
-m 单独启用其他模块,
-m refreshCDN 开启刷新CDN模块
-m socket 开启socket模块
-m http 开启http模块

本文出自 “在路上” 博客,请务必保留此出处http://mingxiao.blog.51cto.com/8124243/1641387
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: