linux实现rsync+sersync实时数据备份

news2025/3/30 20:26:03

1.概述

rsync(Remote Sync) 是一个Unix/linux系统下的文件同步和传输工具

2.端口和运行模式

tcp/873

采用C/S模式(客户端/服务器模式)

3.特点

  • 可以镜像保存整个目录和文件
  • 第一次全量备份(备份全部的文件),之后是增量备份(只备份变化的文件)

4. 数据同步方式

  • 推(push) 本地将数据发送到远程服务器
  • 拉(pull) 远程服务器获取数据到本地

5.rsync命令

  • 基本用法 rsync 选项 源文件位置 目标文件位置

  • 选项

    -a,--archive 归档模式,表示以递归的方式传输文件,并且保持文件属性,等同于-rlptgoD
    -r,–recursive 对子目录以递归模式处理,即同步所有下面的数据
    -l,--links 表示拷贝链接文件
    -p , --perms 表示保持文件原有权限
    -t , --times 表示保持文件原有时间
    -g , --group 表示保持文件原有属用户组
    -o , --owner 表示保持文件原有属主
    -D , --devices 表示块设备文件信息
    -z , --compress 表示压缩传输
    -H 表示硬连接文件
    -A 保留ACL属性信息(需配合-p选项)
    -P 显示传输进度
    -u, --update 仅仅进行更新,也就是跳过所有已经存在于目标位置,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
    --port=PORT 定义rsyncd(daemon)要运行的Port(预设为tpc  873)
    --delete 删除那些目标位置有而原始位置没有的文件
    --password-file=FILE 从FILE中得到密码
    --bwlimit=KBPS 限制I/O带宽,KBytes /second
    --filter “-filename” 需要过滤的文件
    --exclude=filename :需要过滤的文件
    -v 显示同步过程的详细信息
    #常用的-avz
    #补充:如果传输的特别大的文件,就不要用z 参数,因为压缩和解压比较耗时
    
  • 示例

    #格式1
    rsync  选项  rsync://用户名@同步源服务器IP:/共享模块名  目标目录  
    rsync -avz --delete rsync://backuper@192.168.98.143:/test /test  
    #--delete 是删除服务端(下面实验的主机A)没有的文件
    #格式2
    rsync  选项  用户名@同步源服务器IP::共享模块名  目标目录  
    rsync -avz --delete backuper@192.168.98.143::test /test
    

6.实验

主机ip 地址
A192.168.98.143
B192.168.98.140
(1).数据同步
  • 在主机A上编写rcync的配置文件

    vim /etc/rsyncd.conf
        uid = root
        gid = root
        address = 192.168.98.143 #写的是本机的ip地址否则服务无法启动
        use chroot = yes
        port = 873 #定义端口
        hosts allow = 192.168.98.0/24 #定义允许访问的地址
        max connections = 4
        pid file = /var/run/rsyncd.pid #进程id文件
        lock file = /var/run/rsyncd.lock #日志文件
        log file = /var/log/rsyncd.log #锁文件
        motd file = /etc/rsyncd.motd #消息文件
    	[backup] #模块名
           path = /test  #备份路径
           comment = backup area #描述
           read only = yes #是否只读
           list = yes #是否隐藏模块列表
           auth users = b1 #备份所使用的用户
           secrets file = /etc/rsync.passwd #校验文件,包含用户名和密码的文件,用户名是			auth users的值	
    
  • 创建描述文件和校验文件

    echo "I am backup server" > /etc/rsyncd.motd #创建描述文件
    echo  "b1:123456" >> /etc/rsync.passwd #创建用户名和密码文件
    chmod 600 /etc/rsyncd.passwd #设置校验文件的权限,不设置会报错
    
  • 开启服务

    rsync --daemon --config=/etc/rsyncd.conf  #指定配置文件并启动服务
    ss -anputl | grep 873 #查看服务是否启动
    systemctl stop firewalld 
    setforce 0
    iptables -F #关闭防火墙
    
  • 主机B测试

    sync -avz --delete b1@192.168.98.143::backup /test  #输入/etc/rsync.passwd中定义的密码
    #免密备份
    vim /etc/rsync.passwd #在主机B上创建文件
    	123456 #只写密码不写用户名,输入/etc/rsync.passwd中定义的密码
    chmod 600 /etc/rsync.passwd  #修改文件权限否则会报错
    sync -avz --delete b1@192.168.98.143::backup /test  --password-file=/etc/rsync.passwd  #指定密码文件
    
(2).实时数据同步(rsync+sersync)

目的:将主机B的数据实时同步到主机A上

  • 修改主机A的rsync的配置文件

    uid = root
    gid = root
    address = 192.168.98.143
    use chroot = yes
    port = 873
    hosts allow = 192.168.98.0/24
    max connections = 4
    pid file = /var/run/rsyncd.pid
    lock file = /var/run/rsyncd.lock
    log file = /var/log/rsyncd.log
    motd file = /etc/rsyncd.motd
    
    [backup]
           path = /test
           comment = backup area 
           read only = false  #在上述实验的基础上只修改这里
           list = yes
           auth users = b1
           secrets file = /etc/rsync.passwd
    
  • 主机B安装sersync

    #使用tar包解压后直接使用
    tar -xf  sersync2.5.4_64bit_binary_stable_final.tar.gz -C /opt/
    	mv /opt/GNU-Linux-x86 /opt/sersync  #修改文件名
    #修改配置文件
      vim /opt/sersync/confxml.xml
      	#修改第24-28行
    	<localpath watch="/monitored">  #本地监控目录
            <remote ip="192.168.98.143" name="backup"/> #主机A(rsync主机的ip),模块名
            <!--<remote ip="192.168.8.39" name="tongbu"/>-->
            <!--<remote ip="192.168.8.40" name="tongbu"/>-->
            </localpath>
         #修改第31-34行
         <commonParams params="-artuz"/>
                <auth start="true" users="b1" passwordfile="/etc/rsync.passwd"/>  #users是备份使用的用户,rsync配置文件中定义的用户, passwordfile就是rsync的校验文件,包含用户名和密码
                <userDefinedPort start="false" port="874"/><!-- port=874 -->
                <timeout start="false" time="100"/><!-- timeout=100 -->
                 <ssh start="false"/>
    
  • 主机B开启守护进程同步数据

    #创建校验文件,修改权限
    echo "123456" > /etc/rsync.passwd  && chmod 600 /etc/rsync.passwd  
    /opt/sersync/sersync2  -d  -r  -o  /opt/sersync/confxml.xml #开启服务,停止服务使用kill命令
    mkdir /monitored  && echo "hello linux !!!" >> /monitored/1.txt  #更改监听的目录查看是否会同步到主机A
    

    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2322780.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机网络】计算机网络协议、接口与服务全面解析——结合生活化案例与图文详解

协议、接口与服务 导读一、协议1.1 定义1.2 组成 二、接口三、服务3.1 定义3.2 服务与协议的区别3.3 分类3.3.1 面向连接服务于无连接服务3.3.2 可靠服务和不可靠服务3.3.3 有应答服务和无应答服务 结语 导读 大家好&#xff0c;很高兴又和大家见面啦&#xff01;&#xff01;…

51c自动驾驶~合集26

我自己的原文哦~ https://blog.51cto.com/whaosoft/11968755 #大模型/Sora/世界模型之间是什么关系 1 什么是大模型 人工智能大模型&#xff08;Artificial Intelligence Large Model&#xff0c;简称AI大模型&#xff09;是指具有庞大的参数规模和复杂程度的机器学习模…

【NUUO 摄像头】(弱口令登录漏洞)

漏洞简介&#xff1a;NUUO 是NUUO公司的一款小型网络硬盘录像机设备。 NUUO NVRMini2 3.0.8及之前版本中存在后门调试文件。远程攻击者可通过向后门文件handle_site_config.php发送特定的请求利用该漏洞执行任意命令。 1.Fofa搜索语句&#xff1a; 在Fofa网站&#xff0c;搜索&…

【设计模式】抽象工厂模式(含与工厂方法模式的对比)

本期我们来学习一下设计模式之抽象工厂模式&#xff0c;在软件开发中&#xff0c;工厂模式 和 抽象工厂模式 都用于创建对象&#xff0c;但它们的应用场景和实现方式有所不同。本文将基于 C 代码&#xff0c;分析抽象工厂模式的实现&#xff0c;并对比其与工厂方法模式的区别。…

IDEA转战Trae AI IED配置

Trae Ai 的前身是vscode IDEA转战Trae AI IED配置 1.安装java相关的插件 2、安装spring相关的插件 3.配置maven环境 打开 Trae AI IDE -> 首选项 -> 设置 -> Editor 设置 ⚠️配置方式有两种 setting.json文件中直接编辑&#xff08;推荐&#xff09;界面设置 方案…

再学:区块链基础与合约初探 EVM与GAS机制

目录 1.区块链是什么 2.remix ​3.账户​ ​4.以太坊三种交易​ 5.EVM 6.以太坊客户端节点 ​7.Gas费用 8.区块链浏览器 1.区块链是什么 只需要检验根节点 Merkel根是否有更改&#xff0c;就不用检查每个交易是否有更改。方便很多。 2.remix 3.账户 如果交易失败的话&…

Nextjs15 - middleware的使用

nextjs 官方文档&#xff08;current branch 对应如下文档&#xff09; Middlewarepath-to-regexp 本专栏内容均可在Github&#xff1a;test_05/Middleware 找到 一、middleware 基本使用 中间件允许您在请求完成之前运行代码。然后&#xff0c;根据传入的请求&#xff0c;您…

边缘计算 vs. 云计算,谁才是工业物联网的未来?

前言 在物联网&#xff08;IoT&#xff09;飞速发展的今天&#xff0c;边缘计算正在彻底改变数据的处理、存储和分析方式。传统的IoT设备数据通常需要发送到云端进行处理&#xff0c;但随着设备数量的激增&#xff0c;这种模式在延迟、带宽和安全性方面暴露出诸多局限。边缘计…

leetcode.189.轮转数组

第一次全反转&#xff0c;第二次反转前k个&#xff0c;第三次反转后n-k个 需要注意的是向又轮转k个时&#xff0c;如果超出数组长度&#xff0c;要对其进行取模运算才是正确的向右轮转个数 class Solution { private:void rotate(vector<int>& nums,int start,int …

OCR 识别案例

OCR 识别案例 注意点&#xff1a;输入图像尺寸比例尽量和参与模型训练的数据集比例相似&#xff0c;识别效果会更好。 1、pytesseract Pytesseract是一个Python的光学字符识别&#xff08;OCR&#xff09;工具&#xff0c;它作为Tesseract OCR引擎的封装&#xff0c;允许你在…

Mybatis配置文件解析(详细)

引言 在了解Mybatis如何帮助客户进行数据的存取后&#xff0c;便对Mybatis的配置文件起了兴趣&#xff0c;在查阅官方文档后&#xff0c;总结了平时能用到的配置&#xff0c;希望能对大家有帮助 1.核心配置文件 主要是指Mybatis-config.xml中 其包含了会深深影响Mybatis行为…

【BFS】《单源、多源 BFS:图搜索算法的双生力量》

文章目录 前言单源BFS例题一、迷宫中离入口最近的出口二、 最小基因变化三、单词接龙四、为高尔夫比赛砍树 多源BFS例题一、 01 矩阵二、飞地的数量三、地图中的最高点四、地图分析 结语 前言 什么是单源、多源BFS算法问题呢&#xff1f; BFS&#xff08;Breadth - First Sear…

【2025】基于springboot+vue的医院在线问诊系统设计与实现(源码、万字文档、图文修改、调试答疑)

基于Spring Boot Vue的医院在线问诊系统设计与实现功能结构图如下&#xff1a; 课题背景 随着互联网技术的飞速发展和人们生活水平的不断提高&#xff0c;传统医疗模式面临着诸多挑战&#xff0c;如患者就医排队时间长、医疗资源分配不均、医生工作压力大等。同时&#xff0c;…

STM32基础教程——PWM驱动舵机

目录 前言 技术实现 原理图 接线图 代码实现 内容要点 PWM基本结构 开启外设时钟 配置GPIO端口 配置时基单元 初始化输出比较单元 调整PWM占空比 输出比较通道重映射 舵机角度设置 实验结果 问题记录 前言 舵机&#xff08;Servo&#xff09;是一种位置&#xff…

odata 搜索帮助

参考如下链接&#xff1a; FIORI ELement list report 细节开发&#xff0c;设置过滤器&#xff0c;搜索帮助object page跳转等_fiori element label 变量-CSDN博客 注&#xff1a;odata搜索帮助可以直接将值带出来&#xff0c;而不需要进行任何的重定义 搜索帮助metedata配置…

Docker基本命令VS Code远程连接

Docker基本命令 创建自己的docker容器&#xff1a;docker run --net host --name Container_name --gpus all --shm-size 1t -it -v Your_Path:Your_Dir mllm:mac /bin/bashdocker run&#xff1a;用于创建并启动一个新容器-name&#xff1a;为当前新建的容器命名-gpus&#x…

大疆上云api直播功能如何实现

概述 流媒体服务器作为直播画面的中转站,它接收推流端的相机画面,同时拉流端找它获取相机的画面。整个流程如下: 在流媒体服务器上创建流媒体应用(app),一个流媒体服务器上面可以创建多个流媒体应用约定推拉流的地址。假设流媒体服务器工作在1935端口上面,假设创建的流…

理解文字识别:一文读懂OCR商业化产品的算法逻辑

文字识别是一项“历久弥新”的技术。早在上世纪初&#xff0c;工程师们就开始尝试使用当时有限的硬件设备扫描并识别微缩胶片、纸张上的字符。随着时代和技术的发展&#xff0c;人们在日常生活中使用的电子设备不断更新换代&#xff0c;文字识别的需求成为一项必备的技术基础&a…

使用 Cursor、MCP 和 Figma 实现工程化项目自动化,提升高达 200% 效率

直接上手不多说其他的&#xff01; 一、准备动作 1、Cursor下载安卓 1.1访问官方网站 打开您的网络浏览器&#xff0c;访问 Cursor 的官方网站&#xff1a;https://www.cursor.com/cn 1.2开始下载: 点击"Download for free" 根据您的浏览器设置&#xff0c;会自…

Arduino、ESP32驱动GUVA-S12SD UV紫外线传感器(光照传感器篇)

目录 1、传感器特性 2、控制器和传感器连线图 3、驱动程序 UV紫外线传感器是一个测试紫外线总量的最佳传感器,它不需要使用波长滤波器,只对紫外线敏感。 Arduino UV紫外线传感器,直接输出对应紫外线指数(UV INDEX)的线性电压,输出电压范围大约0~1100mV(对应UV INDEX值…