1. 备份服务概念介绍:
Rsync是一款开源的、快速的、多功能的、可实现**全量**及**增量**的**本地**或**远程**数据同步备份的优秀工具
全量:将目录中所有数据都进行传输备份(可以包含已经备份过的数据)
增量:将目录中新增的数据进行传输备份(可以不用包含已经备份的数据,提高数据传输效率)
本地:相当于cp备份数据 将数据从一个目录备份到另一个目录(在一台主机上进行)
远程:相当于scp备份数据
scp命令用法:
scp -rp /oldboy/ 10.0.0.41:/
2. 备份服务原理概念:
1)增量备份数据原理
利用算法实现增量备份
1)根据checksum算法识别出增量数据,将增量数据进行传递
2)根据文件属性信息变化(修改时间/大小),进行数据传递
2) rsync守护进程方式备份数据原理
1)需要完成用户身份验证
2)需要将用户身份进行转换 rsync
3)需要将备份数据属主和属组进行改变 rsync
3. 备份服务搭建过程:
1. 服务端配置过程:
第一个历程:确认软件是否安装
yum install -y rsync
第二个历程:编写配置文件
cp /etc/rsyncd.conf /etc/rsyncd.conf.bak01
vim /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 by oldboy" --- 模块注释说明
path = /backup --- 指定备份目录路径
==================================================================
补充说明:rsync软件三种工作方式
1)本地备份数据工作方式 (类似cp命令功能)
2)远程备份数据工作方式 (类似scp命令功能)
3)守护进程备份数据方式 (服务端/客户端)
==================================================================
第三个历程:创建备份目录管理用户
创建一个虚拟用户
# useradd -M -s /sbin/nologin rsync
# id rsync
uid=1042(rsync) gid=1046(rsync) groups=1046(rsync)
第四个历程:创建一个备份数据目录
mkdir /backup
chown rsync.rsync /backup
第五个历程:创建一个访问认证文件
vim /etc/rsync.password
rsync_backup:oldboy123
chmod 600 /etc/rsync.password
第六个历程:启动备份服务程序
systemctl start rsyncd
# netstat -lntup|grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 9114/rsync
tcp6 0 0 :::873 :::* LISTEN 9114/rsync
2. 客户端配置过程:
==========================================================================
rsync命令使用方法:
1)本地备份数据工作方式 (类似cp命令功能)
cp -r 备份数据信息 保存数据目录路径
rsync 参数 /oldboy/oldboy.txt /tmp
2)远程备份数据工作方式 (类似scp命令功能)
拉取数据:客户端将数据进行下载 <-- 备份服务器 还原
rsync 参数 远程主机地址或者名称:拉取的数据信息 本地保存数据目录信息
rsync 172.16.1.31:/oldboy/oldgirl.txt /tmp
推送数据:客户端将数据进行上传 --> 备份服务器 备份
rsync 参数 本地需要备份推送数据 远程主机地址或者名称:/备份数据路径信息
rsync /oldboy/oldboy.txt nfs01:/tmp
PS:rsync在推送目录数据时,目录后面有 / 和 没有/有本地区别
有 / 将目录下面数据内容进行推送传输
没有 / 将目录本身以及下面数据内容都进行推送传输
3)守护进程备份数据方式 (服务端/客户端)
拉取数据:
rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync 参数 认证用户名称@服务端主机名称或地址::模块信息 本地保存数据路径
rsync -r rsync_backup@172.16.1.41::backup /tmp/
推送数据:
rsync 参数 本地需要推送数据 认证用户名称@服务端主机名或地址::模块信息
rsync -r /oldboy rsync_backup@172.16.1.41::backup
==========================================================================
4. 备份服务常见问题:
01. 远程方式rsync 原理 借助SSH协议
[root@backup 19:14:39 ~]# rsync 172.16.1.31:/oldboy/oldgirl.txt /tmp
ssh: connect to host 172.16.1.31 port 22: Connection refused
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: unexplained error (code 255) at io.c(226) [Receiver=3.1.2]
学生环境 和 讲师环境不一致
02.
[root@color~11:14:33]#rsync -r ~/01 10.0.0.41 /tmp
rsync: link_stat "/root/10.0.0.41" failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1178) [sender=3.1.2]
语法结构错误
[root@color~11:18:13]# rsync -r /01 rsync_backup@172.16.1.41::backup
Password:
@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1648) [sender=3.1.2]
03.
@ERROR: auth failed on module backup
rsync error: error starting client-server protocol (code 5) at main.c(1648) [sender=3.1.2]
认证用户名 或 密码出现问题
04.
rsync 172.16.1.31:/oldboy/oldgirl.txt /tmp
The authenticity of host '172.16.1.31 (172.16.1.31)' can't be established