rsync+sersync文件实时同步

rsync+sersync文件实时同步
一:什么是Rsync?
  Rsync(Remote Synchronize)是一款开源的、快速的、多功能的、可以实现全量及增量的本地或远程数据同步备份的优秀工具,并且支持多种操作系统平台运行。
二:什么Sersync?
1、sersync是基于inotify开发的,类似于inotify-tools的工具,Sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或者某一个目录的名字,然后使用rsync同步的时候,只同步发生变化的文件或者目录,因此效率更高。

2、主要应用场景为数据体积大,并且文件很多。

小结:Rsync+sersync
1、sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字;
2、rsync在同步的时候,只同步发生变化的这个文件或者这个目录(每次发生变化的数据相对整个同步目录数据来说是很小的,rsync在遍历查找比对文件时,速度很快),因此,效率很高。

参考
https://blog.csdn.net/jijiuqiu6646/article/details/89454881
https://blog.whsir.com/post-1097.html

三:环境
备份服务器:...222  操作系统:Centos7  
数据源服务器:
...223  操作系统:Centos7

四:备份服务器操作
1、关闭 selinux #永久关闭linux防火墙

$ vi /etc/selinux/config
SELINUX=disabled   # 修改

$ setenforce 0     # 立即生效

2、关闭防火墙

$ systemctl stop firewalld.service

3、安装rsync服务端软件

$ yum install rsync xinetd     # 安装
$ vi /etc/rc.d/rc.local        # #设置开机启动
/usr/bin/rsync --daemon --config=/etc/rsyncd.conf # 添加开机启动

$ systemctl start xinetd     #启动xinetd

4、创建rsyncd.conf配置文件

$ vi /etc/rsyncd.conf
        uid = root
        gid = root
        use chroot = yes
        max connections = 0
        log file = /var/log/rsyncd.log
        pid file = /var/run/rsyncd.pid 
        lock file = /var/run/rsync.lock 
        secrets file = /etc/rsync.pass  
        motd file = /etc/rsyncd.Motd
        [back_data]    #配置项名称(自定义)
            path = /var/www/back_data      #备份文件存储地址
            comment = A directory in which data is stored
            ignore errors = yes
            read only = no
            hosts allow = **.**.**.223  #允许的ip地址(数据源服务器地址)

5、创建用户认证文件

$ vi /etc/rsync.pass    # 配置文件,添加以下内容,添加允许传输用户和密码
    sunline:sunline   # 格式,用户名:密码,可以设置多个,每行一个用户名:密码

6、设置文件权限

$ chmod 600 /etc/rsyncd.conf  #设置文件所有者读取、写入权限
$ chmod 600 /etc/rsync.pass  #设置文件所有者读取、写入权限

7、启动rsync和xinetd

$ /usr/bin/rsync --daemon --config=/etc/rsyncd.conf
$ systemctl start xinetd

五:数据源服务器操作
(1)安装rsync客户端软件
1、关闭 selinux #永久关闭linux防火墙

$ vi /etc/selinux/config
SELINUX=disabled   # 修改

$ setenforce 0     # 立即生效

2、关闭防火墙

$ systemctl stop firewalld.service

3、安装rsync客户端软件

$ yum install rsync xinetd     # 安装

$ vi /etc/rc.local        # #设置开机启动
/usr/bin/rsync --daemon       # 添加开机启动

$ vi /etc/reyncd.conf
        log file = /var/log/rsyncd.log
        pid file = /var/run/rsyncd.pid
        lock file = /var/run/rsync.lock
        motd file = /etc/rsyncd.Motd
        [Sync]
        comment = Sync
        uid = root
        gid = root
        port= 873
$ chmod +x /etc/rc.d/rc.local  #否则重启不执行
$ systemctl start xinetd  #启动(CentOS中是以xinetd来管理rsync服务的

4、创建认证密码文件

 $ vi /etc/passwd.txt   #编辑文件,添加以下内容,该密码应与目标服务器中的/etc/rsync.pass中的密码一致  
   sunline

$ chmod 600 /etc/passwd.txt     #设置文件权限,只设置文件所有者具有读取、写入权限即可   

5、测试数据同步
数据源服务器***...223到备份服务器222,之间的数据同步

$ rsync -avH --port=873 --progress --delete  /var/www/data(要备份的数据源目录 ) root@***.***.***.222::back_data(rsyncd.conf文件配置名称)  --password-file=/etc/passwd.txt

(2)安装sersync工具,实时触发rsync进行同步
备注:Linux下支持inotify的内核最小为2.6.13,可以输入命令:#uname -a查看内核
CentOS 7.0内核为3.10.0,默认已经支持inotify

1、修改inotify默认参数(inotify默认内核参数值太小) 修改参数:

$ sysctl -wfs.inotify.max_queued_events="99999999"
$ sysctl -w fs.inotify.max_user_watches="99999999"
$ sysctl -wfs.inotify.max_user_instances="65535"
$ vi /etc/sysctl.conf #添加以下代码
    fs.inotify.max_queued_events=99999999
    fs.inotify.max_user_watches=99999999
    fs.inotify.max_user_instances=65535

2、安装sersync

64位下载地址:https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz
32位下载地址:https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5_32bit_binary_stable_final.tar.gz
上不去google的可以直接wget本地的包,这里只提供64位版本的:http://down.whsir.com/downloads/sersync2.5.4_64bit_binary_stable_final.tar.gz
$ tar zxvfsersync2.5.4_64bit_binary_stable_final.tar.gz      #解压
$ mv GNU-Linux-x86  /usr/local/sersync                      #移动目录到/usr/local/sersync  

3、创建rsync

$ cd  /usr/local/sersync #进入sersync安装目录
$ cp confxml.xml  confxml.xml-bak       #备份原文件
$ cp confxml.xml  data_configxml.xml    #复制用于同步data目录的文件

4、修改配置 data_configxml.xml 文件

  $ vi data_configxml.xml
       -----  24行   -----
       
       <localpath watch="/var/www/data">            		 # 本地数据源路径             
		<remote ip="***.***.***.222" name="back_data"/>        # 备份服务器地址信息
       </localpath>
          <rsync>
             <commonParams params="-artuz"/>
             <auth start="true" users="root" passwordfile="/etc/passwd.txt"/>        ## 启用身份验证"true",密码文件路径"/etc/passwd.txt"
             <userDefinedPort start="false" port="874"/><!-- port=874 -->
             <timeout start="false" time="100"/><!-- timeout=100 -->
           <ssh start="false"/>
    	  </rsync>

5、启动服务

$ /usr/local/sersync/sersync2 -d -r -o  /usr/local/sersync/data_configxml.xml

6、设置sersync监控开机自动执行

 $ vi /etc/rc.d/rc.local  #编辑,在最后添加    
 /usr/local/sersync/sersync2 -d -r -o  /usr/local/sersync/data_configxml.xml
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值