首页 > 其他分享 >rsync+sersync文件实时同步

rsync+sersync文件实时同步

时间:2023-07-19 21:36:38浏览次数:30  
标签:rsync sersync inotify 备份 实时 etc file rsyncd


一、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(要备份的数据源目录 ) [email protected]::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>

标签:rsync,sersync,inotify,备份,实时,etc,file,rsyncd
From: https://blog.51cto.com/u_16191641/6779798

相关文章

  • 实时数据库技术架构
    实时数据库技术架构的实现是一个相对复杂的过程,需要考虑到数据的实时性、可靠性以及扩展性等因素。下面我将详细介绍实现实时数据库技术架构的步骤,并提供相应的代码示例。实时数据库技术架构的步骤首先,我们需要明确整个实时数据库技术架构的流程。下面是一个简单的流程表格:步......
  • ClickHouse多种实时更新方法总结
    ClickHouse本身对update的执行是低效的,因为ClickHouse的MergeTree存储一旦生成一个DataPart,这个Part就不支持更改,而是需要删除旧Part,重写整个Part。所以从MergeTree存储内核层面,ClickHouse就不擅长做数据更新删除操作。本文讲述的方法包括采用系统自带的Update,采用Replacing......
  • .net 6 winform启动器:调用CMD命令行执行dotnet命令启动.net core程序并将控制台输出日
    背景历史遗留问题,生产车间运行的一个.netcoresignalr程序使用命令行程序启动,经常由于生产人员误操作将光标停留在控制台上导致程序假死,丢失部分测试数据,车间随便找了一台win10系统部署的程序,源代码遗失,电脑也是阉割版,原开发者已经离职多年无人敢动,于是想了一个歪门邪道发方......
  • RealChar:实时AI数字人
     RealChar——一个全能的开源代码库,先看演示。 谁需要RealChar-您的实时人工智能角色-如果您已经厌倦了文字聊天,想要交谈-如果您想随身携带您的人工智能角色-如果您想进行全面的自定义-如果您是一名工程师,正在寻找早期且无偏见的代码库来开始AI工程师的旅程Re......
  • GB28181设备接入侧录像查询和录像下载技术探究之实时录像
    技术背景我们在对接GB28181设备接入侧的时候,除了常规实时音视频按需上传外,还有个重要的功能,就是本地实时录像,录像后的数据,在执法记录仪等前端设备留底,然后,到工作站拷贝到专门的平台。本文探讨的是,基于GB28181设备接入更进一步的处理:录像查询和录像下载,本文以我们Android平台开发的G......
  • 【原创】虚拟化技术及实时虚拟化概述
    版权声明:本文为本文为博主原创文章,未经本人同意,禁止转载。如有问题,欢迎指正。博客地址:https://www.cnblogs.com/wsg1100/实时虚拟化技术是一种针对实时应用场景的虚拟化技术,它要求在保证虚拟化优势的同时,满足严格的时间约束和高可靠性要求。本系列文章文将对实时虚拟化技术进行介......
  • 大数据生态圈/Hadoop/Spark/Flink/数据仓库/实时分析/推荐系统
    课程实用性很强,老师讲的很透彻,都是面试容易问到的;紧扣当前企业所用技术,对于从事大数据或者转行大数据行业,都有很大的帮助。比屋教育,秉承“活学活用”的教育理念,集合资深专家讲师团队,依托完善的线上教学管控平台,专注于大数据、云计算、互联网架构师等领域的职业技能培训,着力培养......
  • msmpeng.exe 是 Windows Defender 的后台服务进程,也称为 Windows Defender Antimalwar
    msmpeng.exe是MicrosoftWindowsDefender的主要组件之一。WindowsDefender是Windows操作系统内置的杀毒软件和安全防护工具,用于检测和清除计算机上的潜在恶意软件、病毒和其他安全威胁。具体来说,msmpeng.exe是WindowsDefender的后台服务进程,也称为WindowsDefender......
  • Vue3 webSocket收到消息改变响应式全局对象从而实时改变界面
    需求在main.js中创建一个 响应式全局对象。通过WebSocket收到消息改变这个全局对象时,子组件应同步响应。效果:这几个标签框绑定的全局对象json main.js定义 响应式全局对象//全局对象constglobalData=reactive({extTelMonitorData:[{title:......
  • 如何实现怎样实时监测Android系统打印的日志信息的具体操作步骤
    怎样实时监测Android系统打印的日志信息在开发Android应用程序的过程中,日志信息是非常重要的调试工具。通过日志信息,我们可以了解应用程序的运行状态、错误信息以及其他关键信息。为了更好地调试和分析应用程序的日志信息,我们可以实时监测Android系统打印的日志信息。本文将介绍如......