sersync 实时同步
基于sersync海量文件实时同步:TP
A主机中需要同步的源文件
B主机是 装有rsync 服务端的 目标目录。(可以参考:rsync 安装
实时同步工具选择
sersync+RSYNC(√)、inotify+rsync
notify
是一个通知接口,用来监控文件系统的各种变化,如果文件存取,删除,移动。可以非常方便地实现文件异动告警,增量备份,并针对目录或文件的变化及时作出响应。rsync+inotify
可以实触发式实时同步增量备份
sersync
是国人基于rsync+inotify-tools
开发的工具,不仅保留了优点同时还强化了实时监控,文件过滤,简化配置等功能,帮助用户提高运行效率,节省时间和网络资源。sersync项目地址
主机A上安装
(1) 安装
sersync需要依赖inotify和rsync,所以需要安装对应软件
yum install rsync inotify -y
# 安装sersync
mkdir /server/tools -p
cd /server/tools/
下载
wget https://raw.githubusercontent.com/wsgzao/sersync/master/sersync2.5.4_64bit_binary_stable_final.tar.gz
tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
mv GNU-Linux-x86/ /usr/local/sersync
2.配置sersync详解
cd /usr/local/sersync/
cp confxml.xml confxml.bak
vim confxml.xml
.....
<sersync>
<localpath watch="/data">
<remote ip="172.16.1.41" name="nfs"/>
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>
<rsync>
<commonParams params="-avz"/>
<auth start="true" users="rsync_backup" passwordfile="/etc/rsync.pas"/>
<userDefinedPort start="false" port="874"/><!-- port=874 -->
需要更改的地方:
<auth start="true" users="rsync_backup" passwordfile="/etc/rsync.pass"/>
说明;
5 <fileSystem xfs="true"/> <!-- 文件系统 -->
6 <filter start="false"> <!-- 排除不想同步的文件-->
7 <exclude expression="(.*)\.svn"></exclude>
8 <exclude expression="(.*)\.gz"></exclude>
9 <exclude expression="^info/*"></exclude>
10 <exclude expression="^static/*"></exclude>
11 </filter>
12 <inotify> <!-- 监控的事件类型 -->
13 <delete start="true"/>
14 <createFolder start="true"/>
15 <createFile start="true"/>
16 <closeWrite start="true"/>
17 <moveFrom start="true"/>
18 <moveTo start="true"/>
19 <attrib start="false"/>
20 <modify start="false"/>
21 </inotify>
23 <sersync>
24 <localpath watch="/data/www"> <!-- 监控的目录 -->
25 <remote ip="172.16.1.41" name="data"/> <!-- backup的IP以及模块 -->
26 <!--<remote ip="192.168.8.39" name="tongbu"/>-->
27 <!--<remote ip="192.168.8.40" name="tongbu"/>-->
28 </localpath>
29 <rsync> <!-- rsync的选项 -->
30 <commonParams params="-az"/>
31 <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>
32 <userDefinedPort start="false" port="874"/><!-- port=874 -->
33 <timeout start="true" time="100"/><!-- timeout=100 -->
34 <ssh start="false"/>
35 </rsync>
<!-- 每60分钟执行一次同步-->
36 <failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--def
ault every 60mins execute once-->
3-配置密码文件: 31使用sersync执行推送时候需要使用密码文件
echo 123456 > /etc/rsync.pas
chmod 600 /etc/rsync.pas
4-.修改BACKUP服务器的配置文件增加nfs模块 (主机B 上修改)
vi /etc/rsyncd.conf
添加
[nfs]
path = /data
创建目录
mkdir /data
chown rsync.rsync /data
重启rsync服务生效
systemctl restart rsyncd
找个客户端测试nfs模块是否正常:
rsync -avz /etc/hosts rsync_backup@172.16.1.41::nfs
5 .启动sersync服务守护进程 (主机A )
启动Sersync, 如果需要同步多个目录, 那么需要配置多套环境
/usr/local/sersync/sersync2 -dro /usr/local/sersync/confxml.xml
# 查看启动参数
./sersync2 -h
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序
说明, sersync 可以实时同步文件内容的变化,
欢迎来撩 : 汇总all