news 2026/7/7 6:51:27

Rsync数据同步备份

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Rsync数据同步备份

文章目录

      • 理论知识
        • 1、什么是Rsync
        • 2、备份方式
        • Rsync应用场景
        • 在大量服务器进行备份的场景
        • Rsync数据传输方式
      • Rsync同步实验操作
        • 实验环境
        • 实验需要
        • 实验步骤
          • 服务端操作
          • 1、安装软件包
          • 2、编辑配置文件
          • 3、创建虚拟用户密码文件(用于客户端连接时使用的用户)
          • 4、创建目录
          • 5、创建程序用户并授权
          • 6、启动rsyncd
          • 客户端操作
          • 1、配置客户端的密码并且设置权限
          • 验证

理论知识

1、什么是Rsync

rsyncs是开源的备份工具,可以在不同的主机之间进行同步,可以实现全量备份和增量的备份,合适架构集中备份或者进行异地备份

官方:https://rsync.samba.org/

监听端口: 873/tcp

运行模式是c/s架构

2、备份方式

有两种方式进行备份,完全备份和增量的备份

**案例:**如果客户端上有file1、file2、file3这3个文件,服务端目前只有file1文件,现在需要把客户端的数据备份到服务器

完全备份

完全备份,将客户端所有的数据内容 file1 file2 file3 全部备份至服务端 (效率低下, 占用空间),因为file1是已经有过的数据,但是还是需要同步备份

增量备份

增量备份,将客户端的 file2 file3 增量备份至服务端 (提高备份效率,节省空间, 适合异地备份 )

Rsync应用场景

数据同步的两种方式 推送和拉取

Rsync 服务端是一个 “被动监听的服务”,它不会主动发起任何数据同步操作,所有的推 / 拉行为都必须由客户端主动触发

:所有的主机自己推送本地的数据到Rsync备份服务器上,缺点是数据同步缓慢。比较合适数据少的备份场景

:客户端进行拉取服务端的数据进行备份,缺点是备份服务器的开销比较大

在大量服务器进行备份的场景

需要多个server进行备份,多个客户端的情况下,可以进行规划,客户端侧主机推同步数据到备份服务器1,2,3,最终由一个备份服务器定时的主动去拉取数据下来完成同步

异地怎么进行备份??

步骤①(推模式):左侧黄色 WebServer 作为Rsync 客户端,主动将数据 ** 推(上传)** 到「本地备份」(此时「本地备份」是 Rsync 服务端,被动接收数据);
中间同步:「本地备份」再通过 Rsync 同步到「云端备份」(通常是「本地备份」作为客户端,将数据推到「云端备份」服务端);
步骤③(拉模式):右侧红色 WebServer 作为Rsync 客户端,主动从「云端备份」(Rsync 服务端)** 拉(下载)** 数据,完成异地数据获取。

Rsync数据传输方式

主要有三种方式:

1、本地方式:同一台机器里面的文件 目录同步 不依赖网络,高效拷贝比cp多了增量同步、校验等功能的

2、远程方式:基于shh,跨机器传输,不需要单独启动Rsync,使用ssh服务即可,比较合适小规模的跨机器同步,使用shh系统用户、必须使用真实路径不安全,使用普通用户要考虑权限问题

3、守护进程:跨机器同步,依赖单独启动的Rsync服务端服务,比较合适于多客户端访问,高频 自动化同步

rsync参数的选项 -a#归档模式传输, 等于-tropgDl-v#详细模式输出, 打印速率, 文件数量等-z#传输时进行压缩以提高效率-r#递归传输目录及子目录,即目录下得所有目录都同样传输。-t#保持文件时间信息-o#保持文件属主信息-p#保持文件权限-g#保持文件属组信息-l#保留软连接-P#显示同步的过程及传输时的进度等信息-D#保持设备文件信息-L#保留软连接指向的目标文件-e#使用的信道协议,指定替代rsh的shell程序--exclude=PATTERN#指定排除不需要传输的文件模式--exclude-from=file#文件名所在的目录文件--bwlimit=100#限速传输 KBytes每秒--partial#断点续传--delete#让目标目录和源目录数据保持一致
1、本地方式 语法:rsync 选项 src 备份文件路径 dest 备份到哪里 例如:rsync -avz /etc/passwd /tmp2、远程方式: pull 语法:rsync 选项[user@]HOST:src destrsync-avz root@10.0.0.41:/etc ./ push 语法rsync选项 推src[user@]HOST:destrsync-azv /backup root@10.0.0.41:/tmp3、守护进程:非常重要的功能,不使用系统用户安全 pull 拉取 语法:rsync 选项[user@]HOST:src destrsync-avz rsync_user@10.0.0.41::src dest --password-file=/etc/rsync.password[OPTION...]---选项[USER@]---远程主机用户(虚拟用户)HOST:: ---远程主机地址 SRC... ---远程主机模块(不是目录)[DEST]---将远程主机数据备份至本地什么位置 push 推送rsync选项 src[user@]HOST:dest

Rsync备份、Scp拷贝、nfs网络文件系统之间的区别

对比维度Scp(跨机拷贝工具)Rsync(增量同步 / 备份工具)NFS(网络文件共享服务)
核心用途临时、一次性的跨机文件 / 目录拷贝增量同步、定时备份、多轮次数据一致化多机器实时共享同一远程目录(像本地目录一样操作)
传输 / 访问逻辑全量拷贝:不管目标文件是否存在,都传完整文件增量同步:仅传 “源和目标不一致的部分”(新增 / 修改内容)实时挂载:客户端直接读写远程文件,修改立即同步到服务端
操作方式执行<font style="color:rgb(0, 0, 0);">scp</font>
命令触发单次传输,完成后断开连接
执行<font style="color:rgb(0, 0, 0);">rsync</font>
命令(手动 / 定时)触发同步,完成后断开
客户端挂载远程目录,持续保持连接,实时访问
功能特性功能单一:仅支持基础拷贝,无增量 / 压缩 / 校验功能丰富:支持增量、压缩(<font style="color:rgb(0, 0, 0);">-z</font>
)、文件校验、删除冗余文件(<font style="color:rgb(0, 0, 0);">--delete</font>
功能聚焦:实现目录实时共享,依赖文件系统权限控制
资源占用传输时占带宽(全量传输,大文件耗时久)仅传增量,带宽 / 时间消耗远低于 Scp持续占用网络连接(挂载后),服务端需承载多客户端实时访问压力
数据一致性仅保证 “这次拷贝完成”,无后续一致性同步完成后数据一致;同步间隔内可能不一致实时一致:多客户端访问的是同一远程目录,修改立即生效

Rsync同步实验操作

实验环境
主机名IP地址功能
backup10.0.0.41部署rsync独立服务
m0110.0.0.61客户端,需要将文件备份到backup上
实验需要

1.部署rsync独立服务
2.要求rsync的认证用户为rsync_user,密码123456

3.同步数据目录为backup

4.实现客户端主动上传数据同步、拉取同步、增量数据同步

实验步骤
服务端操作
1、安装软件包
rsync包,已经安装[root@backup~]# yum -y install rsync
2、编辑配置文件
[root@backup~]# cat /etc/rsyncd.confuid=rsync gid=rsync port=873fake super=yesusechroot=no max connections=200timeout=600ignore errors read only=falselist=falseauth users=rsync_user secrets file=/etc/rsync.passwd log file=/var/log/rsyncd.log[backup]#这里就是定义的共享模块,提供客户端访问的,大小写敏感comment=welcome to softeem backup!path=/backup uid=rsync---运行进程的用户 gid=rsync---运行进程的用户组 port=873---监听端口 fake super=yes---无需让rsync以root身份运行,允许存储文件的完整属性usechroot=no---关闭假根功能 max connections=200---最大连接数 timeout=600---超时时间 ignore errors---忽略错误信息 read only=false---对备份数据可读写list=false---不允许查看模块信息 auth users=rsync_user---定义虚拟用户,作为连接认证用户 secrets file=/etc/rsync.passwd---定义rsync服务用户连接认证密码文件路径
3、创建虚拟用户密码文件(用于客户端连接时使用的用户)
[root@backup~]# echo "rsync_user:123456" > /etc/rsync.passwd注释: 要修改该密码文件的权限为600400,否则会报认证失败的错[root@backup~]# chmod 600 /etc/rsync.password[root@backup~]# ls -l /etc/rsync.password-rw-------1root root18Dec1611:17/etc/rsync.password
4、创建目录
[root@backup~]# mkdir -p /backup
5、创建程序用户并授权
#创建运行rsync的用户,配置文件指定的uid[root@backup~]# useradd -r -s /sbin/nologin rsync#进行授权[root@backup~]# chown -R rsync.rsync /backup/
6、启动rsyncd
[root@backup~]# systemctl restart rsyncd[root@backup~]# systemctl enable rsyncdCreated symlink from/etc/systemd/system/multi-user.target.wants/rsyncd.service to/usr/lib/systemd/system/rsyncd.service.
客户端操作
1、配置客户端的密码并且设置权限
#安装rsync服务[root@m01 ~]# yum install -y rsync[root@m01 ~]# echo "123456" > /etc/rsync.password[root@m01 ~]# chmod 600 /etc/rsync.password
验证

验证一:客户端推送数据到服务端

[root@m01 ~]# rsync -azv /etc/passwd rsync_user@10.0.0.41::backup/ --password-file=/etc/rsync.passwordsending incrementalfilelistpasswdsent995bytes received43bytes2,076.00 bytes/sec total size is2,304speedup is2.22检查服务器[root@backup backup]# lspasswd[root@backup backup]#

验证二:客户端拉取rsync的数据到本地

#在服务器上的blackup目录创建文件[root@backup backup]# touch test[root@backup backup]# lspasswdtest#在客户端进行拉取[root@m01 ~]# rsync -azv rsync_user@10.0.0.41::backup /tmp/ --password-file=/etc/rsync.passwordreceiving incrementalfilelist ./passwdtestsent69bytes received1,097bytes2,332.00 bytes/sec total size is2,304speedup is1.98[root@m01 tmp]# lspasswdtesttest.txt 设置使用的是模块进行定义目录,所以命令的地方是使用::模块

验证三:数据无差异同步

拉取的方式#远程没有的文件本地有也会被删除,导致客户数据丢失#先在/data下创建几个文件[root@m01 data]# touch txt{1..3}[root@m01 data]# lspasswdtesttxt1 txt2 txt3[root@m01 data]##使用差异备份,把远程和本地统一[root@m01 data]# rsync -avz --delete rsync_user@10.0.0.41::backup /data --password-file=/etc/rsync.passwordreceiving incrementalfilelist deleting txt3 deleting txt2 deleting txt1 ./ sent27bytes received115bytes284.00bytes/sec total size is2,304speedup is16.23[root@m01 data]# lspasswdtest[root@m01 data]#--delete参数实现 “无差异同步” 的作用,以及对应的风险,让目标端和源端数据完全一致,但目标端多余的文件会被删除,因此存在数据丢失风险” 推送的方式
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 7:30:49

6.3 通用Agent内核开发:构建可复用的智能代理核心

6.3 通用Agent内核开发:构建可复用的智能代理核心 在前两节中,我们深入探讨了AI Agent的核心原理,并通过逆向工程分析了Claude Code和Codex的架构设计。现在,我们将动手实践,构建一个通用的Agent内核,这个内核可以作为各种专用AI Agent的基础,具备高度的可复用性和扩展…

作者头像 李华
网站建设 2026/7/7 13:07:50

2004-2024年上市公司慈善捐赠数据+代码

数据简介 数据整理上市公司年报&#xff0c;根据上市公司报表附注中营业外支出科目的明细项目“公益性捐赠支出”、“捐赠支出”等指标汇总整理得到&#xff0c;处理已经重复的数据&#xff0c;数据包括是否捐赠、捐赠金额、捐赠金额与总资产之比、捐赠金额与营业收入之比等数…

作者头像 李华
网站建设 2026/7/6 21:00:10

合规+AI双驱动,Decode Global 2025重构全球服务新生态

2025年全球金融科技行业合规化与智能化浪潮并行&#xff0c;头部平台凭借合规资质与技术创新持续领跑市场。在行业资源向合规标杆集中、用户对安全便捷服务需求升级的趋势下&#xff0c;Decode Global以二十余年行业积淀为根基&#xff0c;依托全方位国际合规布局、AI赋能的服务…

作者头像 李华
网站建设 2026/7/7 16:29:51

终极色彩生成器:快速创建完美配色方案

终极色彩生成器&#xff1a;快速创建完美配色方案 【免费下载链接】tints-and-shades &#x1f308; Display tints and shades of a given hex color in 10% increments. 项目地址: https://gitcode.com/gh_mirrors/ti/tints-and-shades 色彩搭配是设计和开发中最关键的…

作者头像 李华
网站建设 2026/7/6 10:33:05

202React-Query:useMutation

详情见官方文档api &#x1f4dd; 告别繁琐的状态管理&#xff1a;拥抱 TanStack Query 的 useMutation 在 React 应用中处理数据的创建、更新和删除&#xff08;即 Mutation 操作&#xff09;是日常开发的核心。然而&#xff0c;手动管理这些操作的加载&#xff08;Loading&a…

作者头像 李华