文章目录
01.知识概述部分
1)备份服务命令参数 rsync
2)备份服务企业应用
02.知识回顾说明
1)备份服务概述介绍 rsync软件 (全量和增量备份 本地或远程备份)
备份服务作用:
a 实现数据备份,用于数据还原
b 实现数据备份,用于数据分析
2)备份服务工作原理
a 增量备份数据原理
b 守护进程模式股工作原理
3)备份服务搭建过程
服务端搭建过程: 安装软件 —> 编写配置文件 —> 创建虚拟用户 —> 创建认证文件(权限600) —> 创建备份目录并修改权限属主为rsync —> 启动服务
验证服务端是否部署完毕:
rsync命令进行数据传输验证
rsync命令使用方式
1)本地备份数据 类似于cp
2)远程备份数据 类似于scp
3)守护进程模式
客户端部署:
服务工作模式: 本地备份 远程备份 守护进程备份(服务端客户端)
命令语法结构
4)备份服务配置文件 /etc/rsyncd.conf 其中的
配置文件相关参数 man rsynv.conf
rsync服务器启动(用户管理服务进程 root) ---- 加载配置文件(root) 密码文件(root)
进程用户是什么配置文件属主属组就要设置成什么,否则会不识别配置文件
nginx服务器启动(用户管理服务进程可以修改)
03.备份服务命令参数
rsync -avz
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD。
-r, --recursive 对子目录以递归模式处理。
-l, --links 是否可以将链接类型文件进行传输(没意思)
-L, --copy-links 像对待常规文件一样处理软链结。名称是连接,但会把源文件内容拿过来
将链接文件指向的源文件的真实数据进行传递
-p, --perms 保持文件权限。
-t, --times 保持文件修改时间信息不变。
-g, --group 保持文件属组信息不变。
-o, --owner 保持文件属主信息不变。只针对root用户
-D, --devices 保持设备文件信息。
-v, --verbose 详细模式输出。
-z, --compress(压缩) 对备份的文件在传输时进行压缩处理。
-P 等同于 --partial。
--progress 显示数据传输进度信息。
-w, --whole-file 拷贝文件,不进行增量检测。
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
--password-file=FILE 从FILE中得到密码
--port=PORT 指定其他的rsync服务端口。
--version 打印版本信息。
--exclude=PATTERN 指定排除不需要传输的文件模式。
--include=PATTERN 指定不排除而需要传输的文件模式
04.备份服务企业应用:
1)备份服务多模块配置
需求:将开发人员 运维人员 数据库人员备份数据进行隔离
操作说明 :
第一个里程:修改配置文件,添加多个模块信息
服务端 :
vim /etc/rsyncd.conf
[sa_backup]
comment = "backup dir by oldboy"
path = /sa_backup
[dev_backup]
comment = "backup dir by oldboy"
path = /dev_backup
第二个历程:创建模块对应目录信息
mkdir /sa_backup /dev_backup
chown rsync.rsync /sa_backup /dev_backup
第三个历程:重启服务程序
systemctl restart rsyncd
2)备份服务模块目录中如何创建子目录
需求:将运维人员oldboy01数据 和 oldboy02数据进行区分
将不同主机数据进行区分
操作说明:
rsync -avz /etc/hosts rsync_backup@172.16.1.41::sa_backup/172.16.1.31/
PS: 默认不支持创建多级目录,且后面需要加上/,否则会将/etc/hosts的内容写到新建的172.16.1.31文件中!而不是直接备份。
3)实现排除指定数据信息进行备份
环境准备:
mkdir oldboy{01..03}
touch oldboy{01..03}/{a..c}.txt
├── oldboy01
│ ├── a.txt
│ ├── b.txt
│ └── c.txt
├── oldboy02
│ ├── a.txt
│ ├── b.txttouch oldboy{01..03}/{a..c}.txt
│ └── c.txt
└── oldboy03
├── a.txt
├── b.txt
└── c.txt
需求1:不想让oldboy01中的,a.txt文件进行备份
PS:排除数据信息写成相对路径, 相对于传输目录而言
--exclude=file ----排除指定数据不要进行传输同步,使用相对路径,相对于/oldboy目录
rsync -avz /oldboy/ --exclude=oldboy01/a.txt --exclude=oldboy02/b.txt --exclude=oldboy03/c.txt rsync_backup@172.16.1.41::sa_backup
需求2:需要排除多个文件或者目录数据信息时
--exclude-from ---- 加载一个文件可以实现排除多个数据信息
第一个历程:编写一个排除文件/opt/exlude_file.txt(任意目录及名称)
oldboy01/a.txt
oldboy02/b.txt
oldboy03/c.txt
PS:排除数据信息写成相对路径, 相对于传输目录而言
第二个历程:执行排除数据命令
rsync -avz /oldboy/ --exclude-from=/opt/exlude_file.txt rsync_backup@172.16.1.41::sa_backup
4)备份数据采用无差异同步数据(慎用)
--delete 删除那些DST中SRC没有的文件。
--delete-excluded 同样删除接收端那些被该选项指定排除的文件。
--delete-after 传输结束以后再删除。
实现客户端和服务端数据一致,注意目录后面要有/斜线
rsync -avz /oldboy/ --delete rsync_backup@172.16.1.41::sa_backup
意义:保证存储服务器用户数据信息和备份器数据信息高度一致
严重注意:如果前面目录为空目录,或者选择输入错误,会导致备份服务器备份文件被清空
5)实现免交互自动备份数据功能
定时任务/实时同步
客户端操作:
第一个历程:创建密码文件
vim /etc/rsync.password
oldboy123
chmod 600 /etc/rsync.password
第二个历程:进行免密码传输数据测试
rsync -avz /oldboy/ rsync_backup@172.16.1.41::sa_backup --password-file=/etc/rsync.password
思考问题:远程模式如何实现免交互传输数据
https://www.cnblogs.com/bigdevilking/p/9344983.html参考
[root@nfs01 oldboy]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:EFx9I/j5Qh7nIWWGiJxuVlxFyFNOKXcl4Z0DhwCtQWs root@nfs01
The key's randomart image is:
+---[RSA 2048]----+
| o.=oO+B*o++.|
| =.=.X+Oo+o.|
| ... Eo@.o.o.|
| +...* o .|
| o So * . |
| o o |
| . |
| |
| |
+----[SHA256]-----+
[root@nfs01 oldboy]# ll
total 4
drwxr-xr-x 2 root root 45 Jan 10 00:47 oldboy01
drwxr-xr-x 2 root root 45 Jan 10 00:47 oldboy02
drwxr-xr-x 2 root root 45 Jan 10 00:47 oldboy03
-rw-r--r-- 1 root root 45 Jan 10 00:52 path.txt
[root@nfs01 oldboy]# ls /root/.ssh
id_rsa id_rsa.pub known_hosts
[root@nfs01 oldboy]# ssh-copy-id root@172.16.1.41
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@172.16.1.41's password:
Permission denied, please try again.
root@172.16.1.41's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@172.16.1.41'"
and check to make sure that only the key(s) you wanted were added.
最终效果:
[root@nfs01 oldboy]# rsync -avz /oldboy/oldboy.txt backup:/tmp
sending incremental file list
oldboy.txt
sent 89 bytes received 35 bytes 248.00 bytes/sec
total size is 0 speedup is 0.00
6)实现数据备份访问控制功能
hosts allow = 172.16.1.0/24 白名单:允许哪些主机或网段进行传输
hosts deny = 0.0.0.0/32 黑名单:拒绝哪些主机或网段进行传输
访问控制原理:白名单优先黑名单
企业实际应用:只是选择一种名单即可,不用白名单和黑名单同时存在
参见图示:
第一种:只有白名单
匹配白名单,匹配到可以允许,没有匹配的阻止
第二种:只有黑名单
匹配上黑名单的,阻止,没有匹配的就允许
第三种:有白名单与黑名单
172.16.1.1 172.16.2.1 过来的IP是 10.0.0.1 可以允许
两个都匹配可以允许传输
第四种:白名单与黑名单一样的IP
允许传输
备份范围全局配置和局部配置:
全部配置:配置文件中模块以外配置成为全局配置
影响所有模块功能
局部配置:配置文件中模块以内配置成为局部配置
只是影响指定模块信息 局部配置优先于全局配置
7)数据传输限速功能
开发人员(家里) ---- 互联网 -电信等运营商 100M---- 路由器 ---- 网站备份服务器
网站用户 ---- 互联网
–bwlimit=KBps limit socket I/O bandwidth
yum install -y iftop 查看网络吞吐量
tx代表发送的数据量
补充:配置文件中list参数
当list参数配置为true时,客户端可以获取服务端所有模块列表信息
# rsync rsync_backup@172.16.1.41::
sa_backup "oldboy"
dev_backup "oldgirl"