rsync+sersync实现文件实时同步

一、rsync是什么?

1、rsync (remote synchronize)是一种远程数据同步工具,它可以在本地和远程系统之间实现高效的文件同步和备份。
2、使用rsync进行数据同步时,第一次进行完全备份,以后则是增量备份,利用rsync算法(差分编码),只传输差异部分数据。
3、它是许多 Linux 和 Unix 系统的标准工具,并且也有适用于 Windows 等其他平台的实现。

rsync+sersync文件实时同步

sersync的工作原理如下:

  1. Sersync 守护进程在每个节点上运行,并监控被指定的源目录的变化。
  2. 当源目录中的文件发生修改、新增或删除时,Sersync检测到变化并触发同步操作。
  3. Sersync 使用 Rsync算法,仅将已更改的部分数据传输到目标节点,并在目标节点上更新或创建相应的文件。
  4. 目标节点上的 Sersync守护进程接收到传输的数据后,将其恢复为与源节点相同的文件。

一、环境

备份服务器:`192.168.1.*`    操作系统:Centos7.9  
数据源服务器:`192.168.1.*`  操作系统:Centos7.9

二、备份服务器操作

新建备份目录 mkdir /backup

  1. 关闭selinux(永久关闭防火墙)
$ vi /etc/selinux/config
SELINUX=disabled   # 修改
#Enforcing 模式:强制执行访问策略,并拒绝违规操作。
#Permissive 模式:记录违规操作,但不强制执行。
#Disabled 模式:完全禁用 SELinux,不再应用访问策略。

$ setenforce 0     # 立即生效
  1. 关闭防火墙
$ systemctl stop firewalld.service
  1. 安装rsync服务器软件
$ yum install rsync xinetd     # 安装
#其中xinetd是rsync的保姆进程,xinetd管理rsync
$ vi /etc/rc.d/rc.local        # #设置开机启动
/usr/bin/rsync --daemon --config=/etc/rsyncd.conf # 添加开机启动

$ systemctl start xinetd     #启动xinetd
  1. 创建rsync.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 = /backup      #备份文件存储地址=》需要提前新建,否则会报错
            comment = A directory in which data is stored
            ignore errors = yes
            read only = no
            hosts allow =192.168.1.*  #允许的ip地址(数据源服务器地址)
  1. 创建用户认证文件
$ vi /etc/rsync.pass    # 配置文件,添加以下内容,添加允许传输用户和密码
    sc:sc123456   # 格式,用户名:密码,可以设置多个,每行一个用户名:密码
  1. 设置文件权限
$ chmod 600 /etc/rsyncd.conf  #设置文件所有者读取、写入权限
$ chmod 600 /etc/rsync.pass  #设置文件所有者读取、写入权限
  1. 启动rsync和xinetd
$ /usr/bin/rsync --daemon --config=/etc/rsyncd.conf
$ systemctl start xinetd
  1. 查看rsync监听的端口号(873)
    请添加图片描述

三、数据源服务器操作

  1. 关闭selinux
  2. 关闭防火墙
  3. 安装rsync客户端软件
$ yum install rsync xinetd     # 安装

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

$ vi /etc/rsyncd.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服务的
  1. 创建认证密码文件
 $ vi /etc/passwd.txt   #编辑文件,添加以下内容,该密码应与目标服务器中的/etc/rsync.pass中的密码一致  
   sc123456

$ chmod 600 /etc/passwd.txt     #设置文件权限,只设置文件所有者具有读取、写入权限即可   
  1. 测试数据同步
    数据源服务器到备份服务器129之间的数据同步
rsync -avH --port=873 --progress --delete  /backup(要备份的数据源目录 ) root@192.168.1.129::back_data(rsyncd.conf文件配置名称)  --password-file=/etc/passwd.txt

/backup需要新建,这是需要同步到远程备份服务器上的目录,里面放需要备份的文件或文件夹。

四:安装sersync工具,实时触发rsync进行同步

  1. 修改inotify默认参数(inotify默认内核参数值太小) 修改参数:
[root@ln-mysql ~]# sysctl -w fs.inotify.max_queued_events="99999999"
fs.inotify.max_queued_events = 99999999
[root@ln-mysql ~]# sysctl -w fs.inotify.max_user_watches="99999999"
fs.inotify.max_user_watches = 99999999
[root@ln-mysql ~]# sysctl -w fs.inotify.max_user_instances="65535"
fs.inotify.max_user_instances = 65535
[root@ln-mysql ~]# vi /etc/sysctl.conf              设置永久生效
    fs.inotify.max_queued_events=99999999
    fs.inotify.max_user_watches=99999999
    fs.inotify.max_user_instances=65535
  1. 安装sersync
上不去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  
  1. 创建rsync
$ cd  /usr/local/sersync #进入sersync安装目录
$ cp confxml.xml  confxml.xml-bak       #备份原文件
$ cp confxml.xml  data_configxml.xml    #复制用于同步data目录的文件
  1. 修改配置data_configxml.xml文件
  $ vi data_configxml.xml
       -----  24行   -----
       
       <localpath watch="/back">            		 # 本地数据源路径             
		<remote ip="192.168.1.129" 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>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值