0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文详解Rsync备份服务器

马哥Linux运维 来源:CSDN技术社区 2025-06-30 13:57 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Rsync备份服务实践

1、备份基本概述

1.1 什么是备份

备份就是把文件在复制一份存放到另一个位置(简单说就是给源文件增加一个副本)以防原始数据丢失或损坏。
备份可以确保在发生数据丢失的情况下,能够迅速恢复数据,降低损失。备份的方法有很多种,其中包括基于文件、快照、binlog日志、集群等。

• 文件备份:属于最常见的备份方式,将一份文档存储在外部硬盘或网络驱动器上。这种备份方法适用于个人用户和小型企业,因为它简单易行。

• 快照备份:快照备份是在某一特定时间点对数据的一种全面拷贝。快照备份通常使用增量技术,只备份自上次快照以来发生变化的数据,例如VMware的快照功能。

• binlog日志备份:主要备份数据操作记录的过程,例如:数据库被Insert、update、然后不小心delete误删除了,可以将日志文件中的delete删除,然后重新回滚之前的操作恢复数据。

• 集群方案:多个相同的节点,误删除一条节点的数据,并不影响,因为在其他的节点还有对应的数据;

1.2 为什么要做备份

• 1、数据非常的重要

• 2、避免数据不丢失

• 3、便于快速的恢复

1.3 能不能不做备份

可以,对于不是特别重要的数据可以不考虑,例如临时文件、日志文件、缓存文件等;

1.4 备份应该怎么做

完全备份,(全备,效率低下、占用空间、浪费带宽)完全备份示意图
增量备份,(增备,效率较高、节省空间、节省带宽)增量备份示意图

1.5 实现备份的工具

备份通常使用什么工具

• 本地备份:cp

• 远程备份:scp、rsync

2.Rsync基本概述

2.1 什么是Rsync

rsync简称远程同步,可以实现不同主机之间的同步,同时支持增量和全量的备份。

•rsync官方地址:传送门

•rsync监听端口:873

•rsync运行模式:C/S

2.2 Rsync同步模式

推: 所有主机推送本地数据至Rsync备份服务器,会导致数据同步缓慢(适合少量数据备份)

a76663d6-51ab-11f0-b715-92fbcf53809c.png

image.png

拉: rsync备份服务端拉取所有主机上的数据,会导致备份服务器开销大

a77b49c2-51ab-11f0-b715-92fbcf53809c.png

image.png

2.3 Rsync应用场景

大量服务器备份场景

a79423ac-51ab-11f0-b715-92fbcf53809c.png

image.png

异地备份场景

a7ac71fa-51ab-11f0-b715-92fbcf53809c.png

image.png

3、Rsync传输模式

Rsync使用三种主要的数据传输方式

• 本地方式

• 远程方式

• 守护进程

3.1 本地传输

本地传输方式:单个主机本地之间的数据传输(此时类似于cp命令)
本地传输语法:Local: rsync [OPTION...] SRC... [DEST]

本地拷贝数据示例:

[root@backup ~]# rsync -avz /etc/passwd /tmp/
rsync   #备份命令(cp)
[options] #选项
SRC...   #本地源文件
[DEST]   #本地目标文件

3.2 远程传输

远程传输方式:通过ssh通道传输数据,类似scp命令
远程传输语法:

•Pull:rsync [OPTION...] [USER@]HOST:SRC... [DEST]

•Push:rsync [OPTION...] SRC... [USER@]HOST:DEST

Pull拉取数据示例:

# 拉取远程文件
[root@backup ~]# rsync -avz root@172.16.1.31:/etc/hostname ./

# 拉取远程目录下的所有文件
[root@backup ~]# rsync -avz root@172.16.1.31:/root/ /backup/

#拉取远程目录以及目录下的所有文件
[root@backup ~]# rsync -avz root@172.16.1.31:/root /backup/  

Pull    #拉取, 下载
rsync   #备份命令
[options] #选项
[USER@]  #目标主机的系统用户
HOST    #目主机IP地址或域名
SRC...   #目标主机源文件
[DEST]   #下载至本地哪个位置

Push推送数据示例

[root@backup ~]# rsync -avz /backup/2018-10-01 root@172.16.1.31:/tmp/

Push    #推送, 上传
rsync   #备份命令
[options] #选项
SRC...   #本地源文件
[USER@]  #目标主机的系统用户
HOST    #目主机IP地址或域名
[DEST]   #目标对应位置

注意事项:Rsync借助SSH协议同步数据存在的缺陷

• 1、使用系统用户(不安全)

• 2、使用普通用户(会导致权限不足情况)

3.3 守护进程

守护进程传输方式:rsync自身非常重要的功能(不使用系统用户,更加安全)
守护进程传输语法:

•Pull:rsync [OPTION...] [USER@]HOST::SRC... [DEST]

•Push:rsync [OPTION...] SRC... [USER@]HOST::DEST

Pull拉取数据示例:拉取rsync备份服务的"backup模块"数据至本地/mnt目录

[root@nfs ~]# rsync -avz rsync_backup@172.16.1.21::backup/ /mnt/ --password-file=/etc/rsync.password
rsync     #命令
[OPTION...]  #选项
[USER@]    #远程主机用户(虚拟用户)
HOST::     #远程主机地址 
SRC...     #远程主机模块(不是目录)
[DEST]     #将远程主机数据备份至本地什么位置

push推送数据命令:将本地/mnt目录中的数据推送到备份服务器的backup模块

[root@nfs ~]# rsync -avz /mnt/ rsync_backup@192.172.16.1.21::backup/ --password-file=/etc/rsync.password
rsync     #命令
[OPTION...]  #选项
SRC...     #远程主机模块(不是目录)
[USER@]    #远程主机用户(虚拟用户)
HOST::     #远程主机地址
[DEST]     #将远程主机模块备份至本地什么位置

3.4 常用选项

-a      #归档模式传输, 等于-tropgDl
-v      #详细模式输出, 打印速率, 文件数量等
-z      #传输时进行压缩以提高效率
-r      #递归传输目录及子目录,即目录下得所有目录都同样传输。
-t      #保持文件时间信息
-o      #保持文件属主信息
-p      #保持文件权限
-g      #保持文件属组信息
-l      #保留软连接
-P      #显示同步的过程及传输时的进度等信息
-D      #保持设备文件信息
-L     #保留软连接指向的目标文件
-e      #使用的信道协议,指定替代rsh的shell程序
--exclude=PATTERN #指定排除不需要传输的文件模式
--exclude-from=file#文件名所在的目录文件
--bwlimit=100   #限速传输
--partial     #断点续传
--delete      #让目标目录和源目录数据保持一致

4、Rsync服务部署

主机角色 外网IP(NAT) 内网IP(LAN) 主机名称
Rsync服务端 10.0.0.21 172.16.1.21 backup.oldxu.net
Rsync客户端 10.0.0.22 172.16.1.22 nfs.oldxu.net

4.1 Rsync服务端安装

[root@backup ~]# yum -y install rsync

4.2 Rsync服务端配置

[root@backup ~]#cat/etc/rsyncd.conf
uid = rsync
gid = rsync
port = 873
fake super =yes
usechroot= no
max connections = 200
timeout= 600
readonly =false
list =false
authusers= rsync_backup
secrets file = /etc/rsync.passwd
logfile = /var/log/rsyncd.log
#####################################
[backup]
comment = welcome backup!
path = /backup


# 配置详解
[root@backup ~]# vim /etc/rsyncd.conf
uid = rsync           # 运行进程的用户
gid = rsync           # 运行进程的用户组
port = 873           # 监听端口
fake super =yes        # 不需要rsync已root身份运行,就可以存储文件的完整属性
usechroot= no         # 禁锢推送的数据至某个目录, 不允许跳出该目录
max connections = 200      # 最大连接数
timeout= 600          # 超时时间
ignore errors          # 忽略错误的日志信息
readonly =false       # 对备份数据可读写
list =false          # 不允许查看模块信息
authusers= rsync_backup    # 定义虚拟用户,作为连接认证用户
secrets file = /etc/rsync.passwd# 定义rsync服务用户连接认证密码文件路径

[backup]        # 定义模块信息
comment = commit    # 模块注释信息
path = /backup     # 定义接收备份数据目录

4.3 Rsync服务端初始化

Rsync服务端进行初始化

• 1.创建rsync账户,不允许登录不创建家目录(用于运行rsync服务的用户身份)

• 2.创建备份目录(尽可能磁盘空间足够大),授权rsync用户为属主

• 3.创建虚拟用户密码文件,授权为600安全权限(用于客户端连接时使用的用户)

• 4.启动rsync服务,并将rsync加入开机自启动

• 5.检查rsync服务是否正常运行

1、创建rsync用户

[root@backup ~]# useradd -M -s /sbin/nologin rsync

2、创建备份目录,然后授权

[root@backup ~]#mkdir/backup
[root@backup ~]#chown-R rsync.rsync /backup/

3、创建虚拟用户密码文件,并授权为600

[root@backup ~]#echo"rsync_backup:sun">/etc/rsync.passwd
[root@backup ~]#chmod600 /etc/rsync.passwd

4、配置rsyncd启动停止脚本,然后启动服务(默认没有提供)

[root@backup ~]# /etc/systemd/system/rsyncd.service
[Unit]
Description=fast remote file copy program daemon
After=network.target

[Service]
ExecStart=/usr/bin/rsync --daemon --no-detach
ExecReload=/bin/kill -HUP$MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

[root@backup ~]# systemctl daemon-reload
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctlenablersyncd

5、检查服务

[root@backup ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address    Foreign Address   State    PID/Program name  
tcp    0   0 0.0.0.0:873     0.0.0.0:*      LISTEN   4758/rsync

4.4 Rsync客户端配置

Rsync客户端仅需配置虚拟用户的密码,并授权为600安全权限

方式一:适合终端执行,将虚拟用户密码配置至一个文件中;

[root@nfs ~]# yum install rsync -y
[root@nfs ~]#echo"sun"> /etc/rsync.pass
[root@nfs ~]#chmod600 /etc/rsync.pass

方式二:适合脚本执行,将虚拟用户密码设定为环境变量;

[root@nfs ~]# yum install rsync -y
[root@nfs ~]#exportRSYNC_PASSWORD=sun

5、Rsync场景实践

5.1 数据推送与拉取场景

1、客户端推送backup目录下所有内容至Rsync服务端

[root@nfs ~]#exportRSYNC_PASSWORD=sun
[root@nfs ~]# rsync -avz /backup/ rsync_backup@172.16.1.21::backup/

2、客户端拉取Rsync服务端backup模块数据至本地客户端的/backup目录

[root@nfs ~]#exportRSYNC_PASSWORD=sun
[root@nfs ~]#rsync -avz rsync_backup@172.16.1.21::backup /backup/

5.2 数据无差异同步场景

•Rsync实现本地数据与远程数据无差异同步

1、拉取远端数据:远端与本地保持一致,远端没有本地有会被删除, 造成客户端数据丢失

[root@nfs ~]#exportRSYNC_PASSWORD=sun
[root@nfs ~]# rsync -avz --delete rsync_backup@172.16.1.21::backup/ /data/

2、推送数据至远端:本地与远端保持一致, 本地没有远端会被删除, 造成服务器端数据丢失

[root@nfs ~]#exportRSYNC_PASSWORD=sun
[root@nfs ~]# rsync -avz --delete /data/ rsync_backup@172.16.1.21::backup/

5.3 推送数据限速场景

故障案例: 某DBA使用rsync拉取备份数据时,由于文件过大导致内部交换机带宽被沾满,导致用户的请求无法响应;

[root@nfs ~]#exportRSYNC_PASSWORD=oldxu

# 单位MB
[root@nfs ~]# rsync -avz --bwlimit=1 rsync_backup@172.16.1.31::backup/ /data/

5.4 Rsync常见问题

rsync,rsync_backup,是否存在关系;

a7ba1828-51ab-11f0-b715-92fbcf53809c.png

链接:https://blog.csdn.net/Sunfeiyanghtml/article/details/140007999

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动器
    +关注

    关注

    54

    文章

    9012

    浏览量

    153347
  • 硬盘
    +关注

    关注

    3

    文章

    1355

    浏览量

    59573
  • 服务器
    +关注

    关注

    13

    文章

    10094

    浏览量

    90882

原文标题:为什么大厂都在用Rsync?揭秘其底层原理与高可用架构设计

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    两台NAS间进行备份步骤

    `从A备份至B 1登录设备B系统--选择“备份管理” 2选择“Rsync服务器”--勾选“启用Rsync
    发表于 08-07 17:22

    NAS存储中如何进行远程数据备份

    Rsync 备份个数据备份工具。开启 Rsync备份后,用户可将TNAS 设备中的数据
    发表于 11-08 17:42

    教你如何在NAS网络存储中使用Duple Backup进行备份

    是铁威马自行开发的全新备份工具,NAS中的数据通过Duple Backup能远程备份到另外台NAS、Rsync服务器、Webdav
    发表于 05-06 17:56

    NAS网络存储双重备份(Duple Backup)的介绍和使用方法

    ; 4.备份目的地可以是远程TNAS、本地文件夹、Rsync服务器或者Webdav服务器,这里以远程TNAS备份为例,选择远程TNAS
    发表于 06-02 17:59

    NAS网络存储中如何备份数据?

    TNAS、USB 备份到 TNAS,TNAS 备份到 USB ,满足几乎所有数据备份需求,并且支持多版本备份、增量备份、计划
    发表于 01-06 17:26

    怎样备份服务器服务器性能最佳

     天有不测风云,无论在什么时候,对数据有备份还是十分有必要的。尤其是对于服务器备份,它关系到所有网站的正常运行,整体数据较多,涉及的面也比较广,尤其是大型企业,对高性能的
    发表于 07-06 15:55

    如何保证“备份服务器”性能最佳?数据安全专家建议参考分析

    数据中心运行突发故障(如:天灾不可避免的灾难)是无法预测的,计算机里的数据就像扫雷游戏样,十面埋伏充满雷区,随时都有可能Game Over,容灾备份就是数据安全的最后防线。因此,用户除了疡个运行
    发表于 06-19 15:39 1031次阅读

    服务器文件备份软件

    很多运维服务器的人员或网站站长都有个需求,那就是把我的服务器里的文件或压缩包怎么直接备份到云端。
    发表于 08-15 16:43 1617次阅读

    企业如何选择合适的备份服务

      企业需要备份来自各种业务应用程序的数据,因此需要了解些业务数据备份的重要提示。   什么是业务数据备份?这意味着在系统发生故障时备份
    的头像 发表于 11-19 10:07 3819次阅读

    境外服务器中的数据般多久备份

    对境外服务器中的数据定期备份,利于保护境外服务器中存储数据的安全,避免因为境外服务器出现意外导致数据丢失的情况。不管是网站服务器还是存储
    的头像 发表于 02-25 16:53 2528次阅读

    Linux服务器数据同步:Rsync算法

    timeout = —该选项可以覆盖客户指定的 IP 超时时间。从而确保 rsync 服务器不会永远等待个崩溃的客户端。对于匿名 rsync 服务
    发表于 12-22 11:41 503次阅读

    篇文章学会数据备份利器rsync

    在Linux系统下数据备份的工具很多,但阿铭只用种,那就是rsync,从字面意思上可以理解为remote sync(远程同步)。rsync不仅可以远程同步数据(类似于scp),而且可
    的头像 发表于 01-04 14:38 1074次阅读

    linux系统备份与还原工具

    ,并详细介绍它们的功能和使用方法。 rsync rsync个功能强大的文件同步和备份工具,可以快速传输和同步文件以及文件夹。它支持
    的头像 发表于 11-23 10:04 3683次阅读

    服务器的功能是信息备份吗?有哪些优势

    服务器的功能是信息备份吗?云服务器的功能不仅限于信息备份,它涵盖了计算、存储、网络、数据共享、安全和高可用性等多个方面。它通过虚拟化技术实现资源池化,支持弹性计算和可扩展存储,满足不同
    的头像 发表于 11-01 09:48 663次阅读

    别让数据丢失毁了你的树莓派项目!rsync 自动化备份教程!

    备份你的RaspberryPi并不需要很复杂。虽然有许多高级的备份解决方案可供选择,但有时最简单的方法才是最有效的。在本文中,我将向你展示如何使用rsync——个虽小但功能强大的命令
    的头像 发表于 03-25 09:22 1081次阅读
    别让数据丢失毁了你的树莓派项目!<b class='flag-5'>rsync</b> 自动化<b class='flag-5'>备份</b>教程!