备份服务部署过程
1.介绍所明:rsync服务有三种工作方式:
1、本地备份数据
2、远程备份数据
3、守护进程方式备份数据
守护进程方式备份 | 远程备份 |
可以实现多个虚拟用户认证 | 只能基于系统用户进行认证 |
可以支持更改功能配置参数 | 只能支持部分命令参数 |
可以控制远程备份主机 (控制主机连接数量,保证性能) | 不方便对远程主机进行控制 |
可以实现免交互备份数据 | 默认不支持免交互备份数据 |
可以基于rsync服务进行数据传输 | 默认基于ssh服务远程备份数据 |
...... | ...... |
2.通过man命令查看rsync用法:
先整体的查看一下命令格式,下面看我细细写来
#man rsync
Local: rsync [OPTION...] SRC... [DEST] 本地备份数据
Access via remote shell: 基于ssh进行远程备份
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
Access via rsync daemon: 守护进程方式备份数据
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
3.服务端(也叫管理端)部署过程
1.软件安装部署
yum install -y rsync
2.编写配置文件
vim /etc/rsyncd.conf # 如果没有这个文件,自己创建一个
# 以下的 = 两边要有空格
uid = rsync # 管理传输数据用户信息
gid = rsync # 管理传输数据组信息
port = 873 # 指定服务端口信息(默认873,为了安全性可更改)
#fake super = yes # 伪装成超级管理员
守护进程备份数据需要修改数据权限,具有修改权限的能力
use chroot = no # 实现安全配置,实现假根安全配置
max connections = 200 # 设置服务最大连接数(并发连接数)
timeout = 300 # 设置超时时间300s
pid file /var/run/rsyncd.pid # 创建出pid进程号码文件
1.可以根据文件号码信息快速停止进程
2.根据文件存在与否判断服务运行状态
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 by dev" # 模块的功能描述(可自由编写)
path = /backup # 定义一个备份数据目录,多个模块对应多个备份目录
reverse lookup = no # 是否关闭服务反向解析过程
3.创建备份目录
mkdir /backup # 有时候不止一个备份目录,具体根据实际需求创建
4.修改备份目录权限
useradd -s /sbin/nologin -M rsync #创建rsync虚拟用户
chown rsync.rsync /backup #虚拟用户/傀儡用户
5.创建认证用户文件
echo "rsync_backup:111111" >> /etc/rsync.password # 用户名是刚才在配置中设置的,密码自己填写
chmod 600 /etc/rsync.password # 把密码文件更改权限600
6.启动服务程序(rsync默认服务端口873)
systemctl start rsyncd
systemctl enable rsyncd
4.客户端(代理端)部署过程:非交互备份数据
进行访问测试:
推送过程(PUSH):
rsync [OPTION..] SRC... [USER@]HOST::DEST
rsync -avz 本地要备份的数据 认证用户@ 172.16.1.41或主机名::模块信息
推送演示:
[root@web01~]#rsync -avz /test.txt rsync_backup@172.16.1.41::backup
Password: #输入密码,屏幕不显示
sending incremental file list
test.txt
rsync: chgrp ".oldbou01.txt.Y5EeP8" (in backup) failed: Operation not permitted (1)
# 当你使用chgrp命令对文件进行属组权限修改时,不允许修改,提示操作不允许
sent 96 bytes received 137 bytes 51.78 bytes/sec
total size is 14 speedup is 0.06
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2]
# 备份成功,一些错误被忽略没有影响备份
以上错误提示可以经以下步骤进行解决:
1.将 vim /etc/rsyncd.conf 配置中 fake super = yes 取消注释,即操作可以伪装为超级管理员
2.systemctl restart rsyncd 重启rsyncd服务即可
如下:
[root@web01~]#rsync -avz /test.txt rysnc_backup@172.16.1.41::backup
Password:
sending incremental file list
test.txt
sent 96 bytes received 49 bytes 41.43 bytes/sec
total size is 14 speedup is 0.10
# 数据推送成功
推送演示(方法2):
[root@web01~]#rsync -avz /test.txt rsync://rsync_backup@172.16.1.41:873/backup
Password:
sending incremental file list
test.txt
sent 113 bytes received 43 bytes 44.57 bytes/sec
total size is 14 speedup is 0.09
=======================================================
数据拉取过程 PULL
命令格式:
rsync [OPTION...][USER@]HOST::SRC...[DEST]
演示实例:
拉取backup目录中的test.txt文件
[root@web01~]#rsync -avz rsync_backup@172.16.1.41::backup/test.txt /zlin/ # /zlin/为存放拉取
到的文件的目录
Password:
receiving incremental file list
test.txt
sent 43 bytes received 117 bytes 35.56 bytes/sec
total size is 14 speedup is 0.09
方法二大家可以根据命令格式自己测试
rsync服务工作原理:
A主机备份客户端 | B备份服务器 | |
数据信息01-root | 传输备份认证过程 | |
数据信息02-boy | 数据传输 | |
数据信息03-girl | 将受到的数据保存在指定目录 | |
确保保存到备份目录中数据 属主属组都是rsync,有rsync服务 虚拟用户进行修改 |