rsync
开课
我们之前讲了很多服务,这些服务的配置文件,系统当中的日志,对于我们来讲都是比较重要的,那这些数据我们该如何保存呢?用U盘或者是移动硬盘存起来么?不用,本章我们一起来学习一个备份工具rsync
知识点
? 什么是rsync
? rsync的特性
? rsync的传输方式
? rsync日常的使用方式
? 如何实现拉复制
? 如何实现推复制
课程目标
? 能够说出什么是rsync
? 能够说出rsync的端口和特性
? 能够说出如何实现rsync的拉复制与推复制
一 概述
什么是rsync
rsync是一款开源,快速,多功能的可实现增量的本地或远程的数据镜像同步备份的优秀工具。适用于多个平台。从软件名称可以看出来是远程同步的意思(remote sync)可实现全量备份与增量备份,因此非常适合用于架构集中式备份或异地备份等应用。
**官网:**http://rsync.samba.org/
**端口:**873
运行模式: C/S B/S
rsync特性
1、支持拷贝特殊文件如链接文件、设备等
2、可以有排除指定文件或目录同步的功能,相当于tar的排除功能
3、可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变
4、可以实现增量同步,即只同步发生变化的数据,因此数据传输效率很高
5、可以使用rcp,rsh,ssh等方式来配合传输文件(rsync本身不对数据加密)
6、可以通过socket(进程方式)传输文件和数据(服务端和客户端)*****。
7、支持匿名的或认证(无须系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像
传输方式
**拉复制(下载):**rsync备份服务器定期去所有主机上拉取数据
**推复制(上传):**所有主服务器将本地数据推送至从服务器
在日常使用中,这两种形式都是混合使用的如:
大量数据备份
异地备份
二 rsync拉复制实战
环境: 两台主机,IP地址为192.168.11.16,192.168.11.100,操作系统为CentOS8,关闭selinux和防火墙
**需求:**希望192.168.11.100这台主机/cache目录的数据与192.168.11.16这台主机/cache目录中的数据保持一致
step1 在192.168.11.16这台主机上制作rsync服务
[root@localhost ~]
rsync-3.1.3-4.el8.x86_64
[root@localhost ~]
[root@localhost ~]
uid=root
gid=root
port=873
max connections=0
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
motd file=/etc/rsyncd/rsyncd.motd
read only=yes
hosts allow=192.168.11.0/24
hosts deny=*
[www]
path=/cache
list=yes
ignore errors
auth users=hello
secrets file=/etc/rsyncd/rsyncd.secrets
setp2 建立欢迎信息文件,内容随意
[root@localhost ~]
step3 建立密码文件
[root@localhost ~]
hello:123456
[root@localhost ~]
step4 建立cache目录和文件
[root@localhost ~]
[root@localhost ~]
step5启动服务
[root@localhost ~]
[root@localhost ~]
step6 在192.168.11.100上建立密码文件并修改权限
[root@slave ~]
123456
[root@slave ~]
[root@slave ~]
step7 同步测试
[root@slave ~]
rsync参数
-a 归档模式传输,相当于-rlptgoD一起使用
-v 详细模式输出
-z 传输时进行压缩以提高效率
-r 递归传输目录及子目录,即目录下得所有目录都同样传输
-t 保持文件时间信息
-o 保持文件属主信息
-p 保持文件权限
-g 保持文件属组信息
-l 保留软连接
-P 显示同步的过程及传输时的进度等信息
-D 保持设备文件信息
-L 保留软连接指向的目标文件
--exclude=PATTERN 指定排除不需要传输的文件模式
--bwlimit=1m 限速传输
--delete 让目标目录和源目录数据保持一致
--password-file 指定密码文件位置
step8 定义计划任务
[root@slave ~]
* * * * * rsync -avzP --delete --password-file=/etc/rsync.pw hello@192.168.11.16::www /cache
step9 将11.16主机上文件进行调整,观察是否改变
三 rsync推复制
环境: 两台主机,IP地址为192.168.11.16,192.168.11.100,操作系统为CentOS8,关闭selinux和防火墙
**需求:**希望192.168.11.100这台主机/cache目录的数据与192.168.11.16这台主机/cache目录中的数据保持一致
注:停止192.168.11.16主机上的rsync服务
step1 在192.168.11.100这台主机上制作rsync服务
[root@slave ~]
rsync-3.1.3-4.el8.x86_64
[root@slave ~]
[root@slave ~]
uid=root
gid=root
port=873
max connections=0
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
motd file=/etc/rsyncd/rsyncd.motd
read only=no
hosts allow=192.168.11.0/24
hosts deny=*
[www]
path=/cache
list=yes
ignore errors
auth users=hello
secrets file=/etc/rsyncd/rsyncd.secrets
setp2 建立欢迎信息文件,内容随意
[root@slave ~]
step3 建立密码文件
[root@slave ~]
hello:123456
[root@slave ~]
step4 建立cache目录
[root@slave ~]
step5启动服务
[root@slave ~]
[root@slave ~]
step6 在192.168.11.16上安装监控软件
[root@localhost ~]
[root@localhost ~]
step7 配置监控软件
[root@localhost ~]
<sersync>
<localpath watch="/cache">
<remote ip="192.168.11.100" name="www"/>
.
.
.
<rsync>
<commonParams params="-artuz"/>
<auth start="true" users="hello" passwordfile="/etc/rsync.pw"/>
[root@localhost ~]
123456
[root@localhost ~]
step8 启动监控软件
[root@localhost ~]
step9 重新打开一个终端,在192.168.11.16上建立、删除文件,去192.168.11.100上查看是否同步成功
总结
什么是rsync
? rsync使用的端口和同步方式
? rsync的日常应用场景
? 推复制与拉复制的实现
? 测试方法与结果验证
重点:rsync的两种同步方式,配置文件如何修改与调整,在推复制中如何部署监控软件,结果的验证
难点:区分开推复制和拉复制,在日常工作中不要单纯只用一种,要相互结合使用,同步的验证方法
|