运维笔记:rsync+sersync实现实时监控备份同步
Posted the丶only
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运维笔记:rsync+sersync实现实时监控备份同步相关的知识,希望对你有一定的参考价值。
rsync+sersync简介
sersync是基于inotify开发的,类似于inotify-tools的工具。所以同样内核需先支持inotify,才能搭建。
sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或者某一个目录的名字,然后使用rsync同步的时候,只同步发生变化的文件或者目录。
相对于inotify-tools遍历更快,在同步大量数据时更有优势,搭建更快,无需额外编写脚本。
inotify+rsync搭建请参考:inotify+rsync实现实时监控备份
搭建环境:2台Linux(centos 7)
nfs备份共享服务器(源服务器)ip:172.16.2.3
(已安装rsync
)
rsync备份服务器(目标服务器)ip:172.16.2.4
(已搭建完成rsync配置
)
目的:通过sersync对nfs服务器的/www
目录进行监控,如有改动,则自动备份同步至rsync备份服务器的/backup/web
目录。
rsync搭建参考:Linux搭建rsync备用服务器
sersync的安装
sersync是国人一位大佬开发的,没法直接yum安装。没有官网,不用去找(有的话也是第三方自己弄的)。
直接在github上开源发布,有托管在google code上。所以安装需要自己下载安装,
google code地址:https://code.google.com/archive/p/sersync/
github地址:https://github.com/wsgzao/sersync
国内如果访问不了,可能要科学上网。不过国内也有很多资源自己找来下载。目前最新版为2011年更新的2.5.4版本,已停止更新。
在nfs服务器上ip:172.16.2.3
下载,直接在google code下载,或者其他地方下载下来上传至服务器
1:下载至本地
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz
2:解压得到文件夹并移动改名
tar -zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz
移动到/usr/local
并改名sersync
(自行选择目录)
mv GNU-Linux-x86 /usr/local/sersync
3:进入目录并修改xml配置文件
进入
cd /usr/local/sersync #进入sersync安装目录
cp confxml.xml confxml.xml-bak #备份原文件
vi confxml.xml #编辑,修改下面的代码
配置内容修改几个地方:相关信息在自己rsync
备份服务器的配置文件/etc/rsyncd.conf
可见。
原配置文件如下:
#服务器ip,文件路径及模块名设置
<localpath watch="/opt/tongbu">
#这里填写nfs存储服务器(源服务器)要同步的文件夹路径。
<remote ip="127.0.0.1" name="tongbu1"/>
#这里填写rsync备份服务器(目标服务器)的IP地址和模块名,可配置多个服务器
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>
#认证部分(rsync密码认证)
<rsync>
<auth start="false" users="root" passwordfile="/etc/rsync.pas"/>
#启用密码认证,配置auth users+密码文件路径,rsync备份服务器的认证信息。
</rsync>
#修改同步失败日志位置,并且每60分钟对失败的log进行重新同步(可选配置,非必需)
<failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
修改后的相关配置如下:
<sersync>
<localpath watch="/www">
<remote ip="172.16.2.4" name="backup"/>
</localpath>
<rsync>
<commonParams params="-artuz"/>
<auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
</rsync>
<failLog path="/var/log/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
注意:希望各位英语水平都比我好,我把true写成ture后,直接卡死,找半天错误才找,千万不能写错。
4:开启sersync守护进程同步数据并测试程序
开启sersync进程:
/usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml
参数用法:
-d:启用守护进程模式
-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
-n: 指定开启守护线程的数量,默认为10个
-o:指定配置文件,默认使用confxml.xml文件
开启成功,不成功则卡死:
在nfs服务器/www
目录创建6个文件
touch {1..6}.txt
在rsync备份服务器/back/web
查看是否同步过来
ll /backup/web
同步成功,配置完成!!
5:配置sersync环境变量并开机启动
配置环境变量
echo"PATH=$PATH:/usr/local/sersync/">>/etc/profile
source /etc/profile
配置环境变量,配置好后,在命令行可直接输入命令:
sersync2 -d -r -o /usr/local/sersync/confxml.xml
将命令添加到/etc/rc.local,实现开机启动:
echo '/usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/conf/confxml.xml' >> /etc/rc.local
注:如果开机启动无效,是sersync2没有执行权限,给/usr/local/sersync/sersync2赋予执行权限即可
以上全部配置完成!!
6:多实例情况(参考)
配置文化多个localpath无效的,需要配置多配置confxml.xml文件。
如在rsync备份服务器中,配置文件/etc/rsyncd.conf
有多个模块,则需要重新创建confxml.xml。
1、配置多个confxml.xml文件(比如:www、bbs、blog…等等)
www_confxml.xml bbs_confxml.xml blog_confxml.xml(按照单个实例配置即可)
2、最后根据不同的需求同步对应的实例文件
/usr/local/sersync/sersync2 -d -o /usr/local/sersync/www_confxml.xml
/usr/local/sersync/sersync2 -d -o /usr/local/sersync/bbs_confxml.xml
/usr/local/sersync/sersync2 -d -o /usr/local/sersync/blog_confxml.xml
以上是关于运维笔记:rsync+sersync实现实时监控备份同步的主要内容,如果未能解决你的问题,请参考以下文章