备份服务器
特点:Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具
备份分为:
1、全量备份:将目录中所有数据都进行传输备份(可以包含已经备份过的数据)
2、增量备份: 将目录中新增数据都进行传输备份(可以不用包含已经备份过的数据,提高数据传输效率)
本地:相当于cp备份数据,将数据从一个目录备份到另一个目录(在一台主机上进行)
远程:相当于scp备份数据
scp是secure copy的缩写,scp是Linux系统下基于ssh登陆进行安全的远程文件拷贝命令
scp命令用法:scp -rp /oldboy/ 10.0.0.41:/
r : 递归备份
p : 指向远程端口号
/oldboy/: 备份的文件
10.0.0..41: 端口号
: 分隔符号
/ : 备份到哪
作用:
1、避免数据丢失或者损坏
2、将数据进行汇总管理(数据分析)
备份服务原理概念
1、增量备份数据原理:
利用算法实现增量备份
a.根据checksum算法识别出增量数据,将增量数据进行传递
b.根据文件属性信息变化(修改时间/大小),进行数据传递
2、rsync守护进程方式备份数据原理
a.需要完成用户身份验证
b.需要将用户身份进行转换 rsync
c.要将备份数据属主和属组进行改变 rsync
备份服务器搭建过程
服务端配置过程
第一步:下载 yum -install -y rsync
(推拉操作必须每个服务器都有rsync这个软件)
第二步:编写配置文件
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 --- 指定备份目录路径
——————————————————————————————————————————
ps:
rsync软件三种工作方式
1、本地备份数据工作方式(类似cp命令功能)
2、远程贝恩数据工作方式(类似scp)
3、守护进程备份数据方式(服务端)
——————————————————————————————————————————————————
第三步:创建备份目录管理用户
创建一个虚拟用户:
useradd -M -s /sbin/nologin rsync
# id rsync
uid=1007(rsync) gid=1007(rsync) groups=1007(rsync)
(配置文件中指定了守护进程时转换的身份是虚拟用户rsync,所以要创建rsync虚拟用户)
第四步:创建一个备份目录:
mkdir /backup
chown rsync.rsync /backup --> 修改备份文件的属主属组
(修改了文件属主属组为虚拟用户才可以对该文件进行推拉操作)
第五步:创建一个访问认证文件:
vim /etc/rsync.password --> rsync_backup:oldboy123
(1.认证文件不需要非得在etc目录下)
(2.设置服务器的访问密码,相当于“口令”)
chmod 600 /etc/rsync.password
(为了不让所有人都能看到密码)
第六步:启动备份服务程序:
systemctl start rsyncd
systemctl status rsyncd --> 查看是否开启
netstat -lntup|grep rsync --> 查看运行号
客户端配置过程:
————————————————————————————————————————————————
rsync命令使用方法:
1、本地备份数据工作方法(类似cp命令功能)
cp -r 备份数据信息 保存数据目录路径
rsync 参数 /oldboy/oldboy.txt /tmp
2、远程备份数据工作方式(类似sc命令功能)
输入的密码是服务器初始密码:123456
拉取数据:客户端将数据进行下载 <-- 备份服务器 还原
rsync 参数 远程主机地址或者名称:拉取的数据信息 本地保存数据目录信息
命令:rsync 172.16.1.31:/oldboy/oldgirl.txt /tmp
PS: .31 -> 是指定要拉取哪个服务器的信息
oldboy/oldgirl.txt -> 是指拉取哪个文件信息
/tmp -> 是指拉取到执行命令的服务器的哪里
(要想拉取别的服务器的信息只需要修改IP地址就行)
推送数据:客户端将数据进行上传 --> 备份服务器 备份
rsync 参数 本地需要备份推送数据 远程主机地址或者名称:/备份数据路径信息
命令:rsync /oldboy/oldboy.txt nfs01:/tmp
PS:在哪个服务器执行命令就等于从把这个服务器的指定信息推送到哪
PS:rsync在推送目录数据时,目录后面有 / 和 没有/有本地区别
a.有 / 将目录下面数据内容进行推送传输
b.没有 / 将目录本身以及下面数据内容都进行推送传输
3、守护进程备份数据方式 (服务端/客户端)
输入服务器的密码是设置的密码:oldboy123
守护进程拉取数据: 只能从客户端拉取服务端的信息,不能从服务端拉取客户端的信息
rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync 参数 认证用户名称@服务端主机名称或地址::模块信息 本地保存数据路径
rsync -r rsync_backup@172.16.1.41::backup /tmp/
PS:
守护进程推送数据: 只能把客户端信息推送到服务端,不能打服务端信息推送到客户端
rsync 参数 本地需要推送数据 认证用户名称@服务端主机名或地址::模块信息
rsync -r /oldboy rsync_backup@172.16.1.41::backup
————————————————————————————————————————————————————
总结:
远程备份数据方式
拉取或推送数据信息可以互相拉取信息,只需要有拉取的软件“rsync”,改一下服务器的IP地址就行
守护进程备份数据方式要分清“服务端”和“客户端”
推送或拉取数据,只能在客户端把服务端的信息拉取进来或者推送进去