帮助中心 >  行业资讯 >  云计算 >  Linux之rsync远程同步文件

Linux之rsync远程同步文件

2025-02-19 09:47:24 138

rsync数据备份


   rsync 是Linux下的文件同步和数据传输工具,利用它可以使多台服务器数据保持同步一致性,第一次同步时rsync会复制全部内容,但在下一次只传输修改过的文件。


   rsync 在传输数据的过程中可以实行压缩及解压操作,因此可以使用更少的带宽,可以很容易做到保持原来文件的权限、时间、软硬链接等。

  

    rsync常用的传输工具,多台服务器之间传输数据,具备全量同步和增量同步

  

image.png


备份服务 rsync+定时任务 实现定时备份


端口 873


rsync运行模式:C/S  

   client(客户端) /server(服务端)

rsync 守护进程模式


rsync备份服务


①某一台服务器备份


备份 cp tar 

进阶备份  定时任务

②大规模备份

scp  全量同步


rsync 全量/增量同步

rsync 应用场景

 前面我们了解过备份的方式,下面我们需要了解Rync的数据同步模式

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

Rsync应用场景 推(上传)

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

Rsync应用场景  拉(下载)


  • 内网备份

  • 多个机房的备份

  • 异地容灾

rsync工作模式

Rsync 一个快速、通用的远程(和本地)文件复制工具  

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

  • 本地传输模式:rsync类似于cp命令

  • 远程传输模式(ssh隧道模式)

  • rsync守护进程传输模式(rsync服务)

 rsync 中 /tmp /tmp/不同的

/tmp  表示 目录及目录下面的内容
/tmp/ 表示 目录下面的内容


克隆虚拟机

rsync(backp)

nfs01

rsync描述

-a

同步目录,保存权限,属性信息不变

-v

显示过程

-z

传输的时候 压缩数据

-P

显示文件传输的进度信息


image.png

本地模式

rsync -a 可以复制目录

rsync /etc/hosts /tmp/
rsync /etc/ /tmp/


远程模式 (ssh隧道模式)

#push 推
rsync -a /etc/hosts 172.16.1.31:/tmp
y/n  选择y
root@172.16.1.31 passwd : 输入密码

#pull 拉
-v 显示过程
rsync -av 172.16.1.31:/etc/hostname  /opt


远程方式存在的缺陷:

①需要使用系统用户(不安全)

②使用普通用户(权限不足)

③需要走SSH协议


rsync服务(守护进程模式) 环境流程

rsync 服务端 backup

rsync 客户端  nfs01

#rsync 服务端 backup 流程

#检查软件是否安装
rpm -qa |grep rsync

#配置文件 d----->daemon 守护进程(服务)
/etc/rsyncd.conf

#根据配置文件,创建用户,文件,目录.....

#启动服务并测试


#rsync 客户端 nfs01

#检查软件是否安装
rpm -qa |grep rsync

#使用rsync命令
rsync

#测试


rsync配置文件

image.png

①完整备份: 将客户端所有的数据内容 file1 ..file3全部备份至服务端(效率低,占用空间)

image.png

②增量备份:将客户端的file1..file3增量备份至服务端(提高备份效率,节省空间,时候异地备份)

image.png


环境准备 — 2台服务器


服务器角色

主机名

外网IP(NAT)

内网IP(LAN)





rsync 服务端

backup

10.0.0.41

172.16.1.41

rsync 客户端

nfs01

10.0.0.31

172.16.1.31


守护进程模式详解(传输一个文件的过程)

#backup 服务端


#添加虚拟用户
# -M 不要创建用户的主目录
# -s 新用户登录shell的名称
useradd -s /sbin/nologin -M rsync

#显示用户和组id
id rsync

#密码文件  用户名:密码
vim /etc/rsync.passwd
rsync_backup:1

#查看
cat -A /etc/rsync.passwd

#权限600
chmod 600 /etc/rsync.passwd

ll /etc/rsync.passwd

#目录(共享目录) /backup
#创建/backup
mkdir -p  /backup
ll -d /backup/
chown -R rsync.rsync /backup/
ll -d /backup/

#启动服务并检查端口进程
systemctl start rsyncd
systemctl enable rsyncd
#检查端口
ss -lntup |grep rsync
#检查 进程
ps -ef |grep rsync
或者ps aux |grep rsync

#rsync 服务模式命令格式

#backup 是配置中括号[backup] 

#auth users = rsync_backup

rsync -av /etc/hostname rsync_backup@172.16.1.41::backup


#查看日志
tailf /var/log/rsyncd.log


nfs01 客户端

nfs01 客户端


#客户端  
#rsync_backup 授权用户;虚拟用户
#bacpup 模块名称
rsync -avz /etc/passwd rsync_backup@172.16.1.41::backup


#rsync客户端配置密码文件(存放密码)
mkdir -p /etc/ rsync.passwd
chmod  600 /etc/rsync.passwd
或者
echo 1 >/etc/rsync.passwd
chmod600 /etc/rsync.passwd
ll /etc/rsync.passwd


#测试
#不需要输入密码,直接传
rsync -avz /etc  rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.passwd


rsync服务模式补充

  • 服务端配置文件

image.png


rsync补充选项

image.png


rsync 增量数据

  • scp  增量

  • rsync 增量/全量

客户端
mkdir -p /huhao
touch /huhao{01..5}
ll /huhao/

rsync -avPz /huhao/ rsync_backup@172.16.1.41::backup  --password-file=/etc/rsync.passwd

然后在服务端查看
ll /backup
01
02
...
客户端
touch /huhao/huhao{01..5}.txt
ll /huhao/

rsync -avzP /huhao/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.passwd

然后在服务端查看
ll /backup

#客户端
如果文件被修改了,也是同步数据
echo huhao >/huhao/huhao.txt
rsync -avzP /huhao/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.passwd    

#服务端
ll /backup


scp 全量数据复制

image.png


综上所述,rsync 作为一款强大的文件同步与数据备份工具,在不同场景下有着出色的表现。无论是少量数据的备份,还是大规模的异地容灾需求,都能凭借其多种工作模式和丰富的功能选项高效完成任务。掌握 rsync 的使用,能为服务器数据管理与维护提供有力保障,助力构建更稳定、安全的系统环境 。蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。更多技术知识,蓝队云期待与你一起探索。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: