备份服务器 - rsync

备份服务概念

Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具
	全量:将目录中所有数据都进行传输备份(可以包含已经备份过的数据)
	增量:将目录中新增的数据进行传输备份(可以不用包含已经备份的数据,提高数据传输效率)
	本地:相当于cp备份数据  将数据从一个目录备份到另一个目录(在一台主机上进行)
	远程:相当于scp备份数据

作用说明

1) 避免数据丢失或者损坏
2) 将数据进行汇总管理(数据分析)

rsync 的三种工作方式

1) 本地备份数据的工作方式(类似cp命令功能)
2) 远程备份数据的工作方式(类似scp命令功能)
3) 守护进程备份数据的方式(服务端/客户端)

rsync 的选项

-z, --compress		--- 将传输文件数据进行压缩处理
-v, --verbose		--- 显示数据传输详细过程
-a, --archive		--- 归档模式参数; 表示以递归方式传输文件, 并保持所有文件属性, 等价于输入 -rlptgoD
-r, --recursive		--- 远程传输目录信息
-l, --links			--- 是否可以将链接类型文件进行传输
-p, --perms		    --- 保持权限信息不变	
-t, --times			--- 保持修改时间不变
-o, --owner			--- 保持文件属主信息不变
-g, --group			--- 保持文件属组信息不变
-D					--- 是否可以将设备文件进行传输
-L, --copy-links	--- 将链接文件指向的源文件的真实数据进行传递
-P					--- 显示数据传输进度信息
-q, --quiet			--- 精简输出模式
-c, --checksum		--- 打开校验开关, 强制对文件传输进行校验
-R, --relative		--- 使用相对路径信息
-H, --hard-links	--- 保留硬链结
-h, --help			--- 显示帮助信

备份服务原理

增量备份数据原理

利用算法实现增量备份
	1) 根据checksum算法识别出增量数据,将增量数据进行传递
	2) 根据文件属性信息变化(修改时间/大小), 进行数据传递

rsync 守护进程方式备份数据原理

1) 需要完成用户身份验证
2) 需要将用户身份进行转换 rsync
3) 需要将备份数据属主和属组进行改变 rsync

备份服务搭建过程

服务端配置过程

第一步: 安装软件
yum install -y rsync
第二步: 编写配置文件
vi /etc/rsyncd.conf
	#rsync_config
	#created by HQ at 2017
	##rsyncd.conf start##

	uid = rsync							--- 指定转换用户身份/备份目录管理用户
	gid = rsync							--- 指定转换用户组身份/备份目录管理用户组
	port = 873							--- 指定服务端口
	fake super = yes					--- 是否伪装成一个超级用户(rsync)
											保证文件权限信息不变/不再显示 chgrp 命令错误提示	
	use chroot = no						--- 实现远程传输安全配置
	max connections = 200				--- 最大连接数
	timeout = 300						--- 连接超时时间
	pid file = /var/run/rsyncd.pid		--- 记录服务进程号码  只有服务启动才会有进程文件
	lock file = /var/run/rsync.lock		--- 控制最大连接数量
	log file = /var/log/rsyncd.log		--- rsync备份服务日志文件
	ignore errors						--- 忽略错误功能 保证传输数据效率
	read only = false					--- 针对于备份目录是否是只读 
	list = false						--- 是否可以列出模块名
	hosts allow = 172.16.1.0/24			--- 允许哪个主机地址或者网段可以和备份服务器建立连接(白名单)
	hosts deny = 0.0.0.0/32				--- 拒绝哪个主机地址或者网段可以和备份服务器建立连接(黑名单)
	auth users = rsync_backup			--- 指定认证用户
	secrets file = /etc/rsync.password	--- 指定认证密码文件
	[backup]							--- 模块名称
	comment = "backup dir"	--- 模块注释说明
	path = /backup						--- 指定备份目录路径



#rsync_config
#created by HQ at 2017
##rsyncd.conf start##

uid = rsync
gid = rsync
port = 873
fake super = yes	
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = "backup dir"
path = /backup

在这里插入图片描述

第三步: 创建备份目录管理用户
useradd rsync -M -s /sbin/nologin
id rsync
	uid=1042(rsync) gid=1046(rsync) groups=1046(rsync)

在这里插入图片描述

第四个历程:创建一个备份数据目录
mkdir /backup
chown rsync.rsync /backup

在这里插入图片描述

第五个历程:创建一个访问认证文件
vim /etc/rsync.password
rsync_backup:test123
chmod 600 /etc/rsync.password

在这里插入图片描述

第六个历程:启动备份服务程序
systemctl restart rsyncd
systemctl enable rsyncd
netstat -lntnp|grep rsync
	tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      23955/rsync         
	tcp6       0      0 :::873                  :::*                    LISTEN      23955/rsync   

在这里插入图片描述

客户端配置过程

yum install -y rsync

操作过程

本地备份数据工作方式(类似cp命令功能)
rsync  参数  备份数据信息  保存数据目录路径

在这里插入图片描述

远程备份数据工作方式(类似scp命令功能)

拉取数据: 客户端将数据进行下载

rsync  参数  远程主机地址或者名称:拉取的数据信息  本地保存数据目录信息

在这里插入图片描述

推送数据:客户端将数据进行上传

rsync  参数  本地需要备份推送数据  远程主机地址或者名称:备份数据路径信息

在这里插入图片描述

注意: rsync在推送目录数据时, 目录后面有 / 和 没有 / 有本地区别

有	/	将目录下面数据内容进行推送传输
没有	/	将目录本身以及下面数据内容都进行推送传输
守护进程备份数据方式(服务端/客户端)
拉取数据
	rsync  参数  认证用户名称@服务端主机名称或地址::模块信息  本地保存数据路径

在这里插入图片描述

推送数据
	rsync  参数  本地需要推送数据  认证用户名称@服务端主机名或地址::模块信息

在这里插入图片描述

企业应用

1. 备份服务多模块配置

需求: 将开发人员 运维人员 数据库人员备份数据进行隔离
操作说明

第一步: 修改配置文件, 添加多个模块信息

[sa_backup]
comment = "backup dir"
path = /sa_backup
[dev_backup]
comment = "backup dir"
path = /dev_backup

第二步: 创建模块对应目录信息

mkdir /sa_backup  /dev_backup
chown rsync.rsync  /sa_backup  /dev_backup

第三步: 重启服务程序

systemctl restart rsyncd

2. 备份服务模块目录中如何创建子目录

需求: 将不同主机数据进行区分
操作说明
rsync -avz /etc/hosts  rsync_backup@172.16.1.41::sa_backup/172.16.1.31/

注:
默认不支持创建多级目录

3.实现排除指定数据信息进行备份

环境准备
mkdir /test/test{01..03} -p
touch /test/test{01..03}/{a..c}.txt
需求1:不想让test01中a.txt文件进行备份

  - - exclude - - - 排除指定数据不要进行传输同步

rsync -avz /test/ --exclude=/test01/a.txt rsync_backup@172.16.1.41::sa_backup
需求2:需要排除多个文件或者目录数据信息时test01/a.txt、test02/b.txt、test03/c.txt

  - - exclude-from - - - 加载一个文件可以实现排除多个数据信息

第一步: 编写一个排除文件
	vim /test.txt
		test01/a.txt
		test02/b.txt
		test03/c.txt

注:排除数据信息写成相对路径, 相对于传输目录而言

第二步: 执行排除数据命令
	rsync -avz /test/ --exclude-from=/aaa.txt  rsync_backup@172.16.1.41::sa_backup

4. 备份数据采用无差异同步数据 (慎用)

实现客户端和服务端数据一致

  - - delete ---- 使目标目录内容和源保持目录一致, 删除不同的文件

rsync -avz /test/ --delete rsync_backup@172.16.1.41::sa_backup

注:保证存储服务器用户数据信息和备份器数据信息高度一致, 客户端里有什么服务端就有什么

5. 实现免交互自动备份数据功能

客户端操作
第一个历程: 创建密码文件
	vim /etc/rsync.password
		test23
	chmod 600 /etc/rsync.password

第二个历程: 进行免密码传输数据测试
	rsync -avz /test/ rsync_backup@172.16.1.41::sa_backup --password-file=/etc/rsync.password

6. 实现数据备份访问控制功能

hosts allow = 172.16.1.0/24    白名单:允许哪些主机或网段进行传输
hosts deny = 0.0.0.0/32        黑名单:拒绝内些主机或网段进行传输

企业应用: 只是选择一种名单即可, 不用白名单和黑名单同时存在

备份范围全局配置和局部配置

全局配置:
	配置文件中模块以外配置称为全局配置
	影响所有模块功能

局部配置: 
	配置文件中模块以内配置称为局部配置
	只是影响指定模块功能 局部配置优先于全局配置

7. 数据传输限速功能

  - - bwlimit ---- 限制传输速度
开发人员(家里) — 互联网 -电信/联通/移动 100M- 路由器 ---- 网站备份服务器
网站用户 — 互联网 ---- web服务器
–bwlimit=KBps limit socket I/O bandwidth

补充:配置文件中list参数

当list参数配置为true时, 客户端可以获取服务端所有模块注释说明

rsync rsync_backup@172.16.1.41::
	sa_backup      	"backup dir"
	dev_backup     	"backup dir"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值