实时同步sersync

实时同步sersync实战

什么是实时同步

实时同步是一种只要当前目录发生变化则会触发一个事件,事件触发后会将变化的目录同步至远程服务器。

sersync和rsync+inotify对比

提到数据同步就必然会谈到rsync,一般简单的服务器数据传输会使用ftp/sftp等方式,但是这样的方式效率不高,不支持差异化增量同步也不支持实时传输。针对数据实时同步需求大多数人会选择rsync+inotify-tools的解决方案,但是这样的方案也存在一些缺陷(文章中会具体指出),sersync是国人基于前两者开发的工具,不仅保留了优点同时还强化了实时监控,文件过滤,简化配置等功能,帮助用户提高运行效率,节省时间和网络资源。

项目地址

sersync项目实战

1)环境准备

角色外网IP(NAT)内网IP(LAN)安装工具
web01eth0:10.0.0.7eth1:172.16.1.7部署代码(提交作业)
nfs-servereth0:10.0.0.31eth1:172.16.1.31rsync+inotify+sersync
backupeth0:10.0.0.41eth1:172.16.1.41rsync-server

1.实时同步哪台服务器的目录,那么就在哪台服务器上安装sersync

2.只要安装sersync 就必须安装rsyncinotify

 

安装rsync的服务端(backup)

1)安装rsync服务

[root@backup ~]# yum install -y rsync

2)配置文件

[root@backup ~]# vim /etc/rsyncd.conf 
uid = www
gid = www
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[zls]
comment = welcome to oldboyedu backup!
path = /backup

[nfs]
comment = welcome to oldboyedu backup!
path = /data

3)创建用户

[root@backup ~]# groupadd www -g 666
[root@backup ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M

4)创建目录并授权

[root@backup ~]# mkdir /data  /backup
[root@backup ~]# chown -R www.www /data/ /backup/

5)创建虚拟用户的密码文件并授权

[root@backup ~]# echo 'rsync_backup:123' > /etc/rsync.passwd 
chmod 600 /etc/rsync.passwd

6)启动rsync服务

[root@backup ~]# systemctl start rsyncd

 

NFS服务端部署sersync

1)安装sersync需要依赖rsyncinotify

[root@nfs ~]# yum install -y rsync inotify-tools

2)下载sersync

[root@nfs ~]# wget https://raw.githubusercontent.com/wsgzao/sersync/master/sersync2.5.4_64bit_binary_stable_final.tar.gz

3)部署sersync

源码包:解压 生成 编译 安装

解压:

[root@nfs ~]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz

 

4)移动并改名

[root@nfs ~]# mv GNU-Linux-x86 /usr/local/sersync

5)编辑配置文件

[root@nfs ~]# vim /usr/local/sersync/confxml.xml
   <inotify>
       <delete start="true"/>
       <createFolder start="true"/>
       <createFile start="true"/>
       <closeWrite start="true"/>
       <moveFrom start="true"/>
       <moveTo start="true"/>
       <attrib start="true"/>
       <modify start="true"/>
   </inotify>
-----------------------------------------------------------------------------------------
   <sersync>
      #监控的目录,改成/data
       <localpath watch="/opt/tongbu">
          #推送的IP(backup服务的IP)172.16.1.41 ,name是模块名
           <remote ip="127.0.0.1" name="tongbu1"/>
           <!--<remote ip="192.168.8.39" name="tongbu"/>-->
           <!--<remote ip="192.168.8.40" name="tongbu"/>-->
       </localpath>
       <rsync>
          #执行rsync的参数改成 -az
           <commonParams params="-artuz"/>
          #虚拟用户的用户名和密码文件,开启认证start=true rsync_backup   /etc/rsync.pass
           <auth start="false" users="root" passwordfile="/etc/rsync.pas"/>
           <userDefinedPort start="false" port="874"/><!-- port=874 -->
          #设置超时时间
           <timeout start="true" time="100"/><!-- timeout=100 -->
           <ssh start="false"/>
       </rsync>
       <failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
       <crontab start="false" schedule="600"><!--600mins-->
           <crontabfilter start="false">
               <exclude expression="*.php"></exclude>
               <exclude expression="info/*"></exclude>
           </crontabfilter>
       </crontab>
       <plugin start="false" name="command"/>
   </sersync>


#完整配置文件
[root@nfs ~]# cat /usr/local/sersync/confxml.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
   <host hostip="localhost" port="8008"></host>
   <debug start="false"/>
   <fileSystem xfs="false"/>
   <filter start="false">
<exclude expression=

转载于:https://www.cnblogs.com/223zhp/p/11372918.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值