news 2026/4/23 15:19:00

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/4/21 23:34:17

揭秘 Parrot OS 背后的网络安全机制

揭秘 Parrot OS 背后的网络安全机制 Parrot OS 是一款基于 Debian 的 Linux 发行版&#xff0c;以 “渗透测试、网络安全审计、数字取证” 为核心定位&#xff0c;被全球白帽黑客、安全从业者广泛使用。它并非普通的操作系统&#xff0c;而是集成了海量安全工具与专属安全机制的…

作者头像 李华
网站建设 2026/4/23 11:19:27

国家级专精特新“小巨人”第一至七批名单(1.94万家)

专精特新企业是指具有专业化、精细化、特色化、新颖化特征的中小企业&#xff0c;而“小巨人”在特定细分市场中占据领先地位&#xff0c;并且具有较强自主创新能力和发展潜力&#xff1b;在我国&#xff0c;专精特新“小巨人”企业专注于产业链上的某个环节或某类产品&#xf…

作者头像 李华
网站建设 2026/4/23 11:20:23

Qwen3-14B本地部署指南:高效私有化大模型实战

Qwen3-14B本地部署实战&#xff1a;打造企业级私有化AI引擎 在金融合规部门的深夜会议室里&#xff0c;法务团队正为一份跨国并购合同焦头烂额——328页的PDF文档中藏着十几个关键风险点&#xff0c;而距离截止时间只剩6小时。与此同时&#xff0c;某电商平台的客服系统正承受着…

作者头像 李华
网站建设 2026/4/23 11:18:47

用美食来理解JavaScript面向对象编程

欢迎使用我的小程序&#x1f447;&#x1f447;&#x1f447;&#x1f447; 俱好用助手功能介绍 大家好&#xff01;今天我们要聊一个听起来有点“高大上”的话题——JavaScript面向对象编程&#xff08;OOP&#xff09;。别担心&#xff0c;我不会用一堆专业术语砸晕你&#…

作者头像 李华
网站建设 2026/4/23 11:19:06

让代码学会“等外卖”:JavaScript异步编程趣谈

欢迎使用我的小程序&#x1f447;&#x1f447;&#x1f447;&#x1f447; 俱好用助手功能介绍 大家好&#xff01;今天我们来聊聊JavaScript中一个既重要又有趣的话题——异步编程。如果你曾经遇到过网页“卡死”的情况&#xff0c;或者好奇为什么有些操作不会阻塞页面交互&…

作者头像 李华
网站建设 2026/4/23 11:32:02

GDDR6 VS GDDR6X:GPU与AI芯片的高性能显存技术的选择

深入了解 GDDR6 与 GDDR6X 显存的关键差异&#xff1a;对比带宽、能效、信号传输方式以及面向先进 GPU 架构的设计权衡。 引言 随着现代 GPU 对高速度与高能效的需求日益增长&#xff0c;GDDR6 与 GDDR6X 之间的选择已变得至关重要。这两种显存标准共同支撑着下一代游戏、可视…

作者头像 李华