1 rsync备份服务前言说明
01 搭建备份服务作用
1)数据备份的服务器
2)进行日志统一保存
02 搭建备份服务意义
1)保证数据不会丢失
2)便于数据进行恢复
3)便于进行数据比对
03 备份工作如何完成
1)数据进行定时备份(crond定时任务)
2)数据进行实时备份
04 什么是rsync服务
rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具
2 rsync备份服务概念介绍
01 rsync命令使用介绍
rsync命令是一个1v4的命令,一条命令可以干4条命令的事
1)本地备份数据 cp
本地备份数据 cp==rsync
2)远程备份数据 scp
scp命令用于不同主机之间的复制文按键,他采用ssh协议来保证复制的安全性.scp命令每次都是全量复制,因此效率不高,适合第一次复制时使用,增量复制建议使用rsync命令替代
命令常用格式:
推送(从本地服务器复制到远程服务器)文件或目录(推送push)
scp -rp(人品) /文件 用户名@主机(地址):/要备份到的目录
从远程服务器将数据复制到本地服务器(拉取pull)
scp -rp 用户名@主机(地址):/要备份到的目录 /文件
-C 压缩传输
-l 指定传输占用带宽,单位Kbit/s
-P 大写的P,指定传输的端口号 ******
-p 小写的p,传输后保留文件原始属性 ******
-q 不显示传输进度条
-r 递归复制整个目录 ******
远程备份数据 scp==rsync
scp远程备份
rsync远程备份(rsync的参数跟scp有一定差别)
rsync远程备份时注意事项:备份目录后面有没有/
备份目录后面没有 / 会将目录本身及下面的内容进行传输
备份目录后面有 / 只将目录下面的内容进行备份传输.目录本身不会传输
总结: 在使用rsync备份目录时:
备份目录后面有 / -- /oldboy/ : 只将目录下面的内容进行备份传输
备份目录后面没有/ -- /oldboy : 会将目录本身以及下面的内容进行传输
3)替换删除命令 rm
企业应用:如何删除一个大的文件或者目录
如上所述.对于一个大目录来说,利用rm 命令删除的时候,往往伴随效率低下,无法删除的问题,此时利用上面的命令可解决
rsync -rpP -e "ssh -p 52113" --delete /null/ 172.16.1.41:/backup
注意事项: 1. 首先需确认系统中有没有/null/ 若有序确认是否是空目录 若没有则创建
2.-e 参数适用于更改了ssh端口的情况,若没有更改此处无需加
3.-P 此参数是用来观察传输过程的,特别是对于远程操作时,便于观察传输是否正常
4)替代查看文件命令 ls
02 rsync实现方式介绍
1)全量备份数据
全量备份:无论对端有没有数据,只要本地数据更新,就全部复制过去,效率低下,还占用带宽
2)增量备份数据
增量备份:传输前确认对端数据信息,对比信息,若本地新增数据而对端没有,则将新增的数据传送到对端
03 rsync特性总结说明
1) 支持多种类型文件拷贝
2) 支持文件复制排除功能
--exclude= 指定排除不需要传输的文件模式
--exclude-from 从文文件读取需要排除的文件列表
3) 支持文件复制属性不变
-a 以递归方式传输文件,并保持所以文件的属性
4) 支持文件复制增量同步
5) 支持文件复制隧道加密
6) 支持守护进程同步数据
7) 主持数据同步身份验证
04 rsync复制原理说明
3 rsync企业工作场景说明
01 网站内部人员数据备份场景 定时任务+rsync
02 网站外部人员数据备份场景 实时同步+rsync
4 rsync工作方式实践介绍
01 rsync工作方式-本地方式
rsync [OPTION...] SRC... [DEST]
rsync 选项(参数) 源文件 目标文件
02 rsync工作方式-隧道方式(通过远程shell访问模式)
1) 实现方式命令与语法
推送(push):将本地要备份的数据推送到远端备份服务器指定目录进行传输
rsync [OPTION...] SRC... [USER@]HOST:DEST
rsync 选项(参数) 源文件(本地要备份的数据) 用户@主机(ip):要备份到的目录
拉取(pull):将远端备份服务器中需要的数据拉取到本地指定的目录中
rsync [OPTION...] [USER@]HOST:SRC... [DEST]
rsync 选项(参数) 用户@主机(ip):要拉取的文件目录 拉取到本地存放目标目录
2) 可实现传输隧道加密
3) 推和拉工作原理说明
将本地的数据传输到远端备份服务器上是推送过程
将远端备份服务器上的数据下拉到本地目录中是拉取过程
03 rsync工作方式-守护进程
拉取(pull):
rsync [OPTION...] [USER@]HOST::SRC [DEST]
rsync 选项(参数) 用户@主机(ip)::要拉取的文件 目标文件
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC [DEST]
rsync 选项(参数) rsync://用户@主机:端口/源文件 目标文件
推送(push):
rsync [OPTION...] SRC [USER@]HOST::DEST
rsync 选项(参数) 要推送的文件 用户@主机(ip)::目标文件
rsync [OPTION...] SRC rsync://[USER@]HOST[:PORT]/DEST
rsync 选项(参数) 要推送的文件 rsync://用户@主机(ip):端口/目标文件
5 rsync守护进程部署实践
00 linux系统 安装部署服务流程
1) 下载安装软件 yum
2) 编写配置文件
3) 搭建服务环境 文件需要备份到的目录/目录权限
4) 启动服务程序 开机自动启动/etc/rc.local
5) 测试服务功能
01 守护进程概念说明
02 守护进程工作方式
03 守护进程模式部署
1) rsync守护进程服务端配置(备份服务器端)
步骤一:查看软件是否存在-下载安装软件
步骤二:编辑rsync软件配置文件
vim/etc/rsyncd.conf 注意centos7自动生成此文件,centos6需要手动自己创建
配置文件说明:
uid=rsync ---指定管理备份目录的用户(此处是虚拟用户rsync)
gid=rsync ---指定管理备份目录的用户组
port=873 ---定义rsync备份服务的网络端口号
fake super=yes ---将rsync虚拟用户伪装成一个超级管理员用户
作用解析:
当我们执行备份服务命令是会出现以下报错
查看报错得知当系统给hosts文件创建用户组的时候出现权限不足的问题,我们知道当hosts用户进入服务端的时候他的属主已经
变为了rsync用户,而此用户要执行chgrp命令的时候明显不能执行,chgrp需要root用户执行,此时就需要用到配置文件中的fake super配置行了
fake super 字面翻译是伪造的超级用户,查看配置文件
发现此行被注释了,此行的含义就是让rsync伪装成root用户,取消注释,当rsync用户有了root用户的执行权限时,就不会出现上述报错
use chroot=no ---和安全相关的配置
max connections=200 ---最大连接数同时只能有200个客户端连接到备份服务器
timeout=300 ---超时时间(单位秒)
pid file=/var/run/rsyncd.pid ---记录进程号码信息 1.让程序快速停止进程 2.判断一个服务是否正在运行
文件作用解析:开启rsync服务.查看服务状态,打开文件查看文件信息
此时服务进程已经开启,利用netstat命令查看当前服务进程号和端口号,会发现rsync的进程号就是文件中的进程号,有些脚本文件调用服务进程号的时候会直接查询此文件
总结文件作用: 1.让程序快速停止进程 kill `cat/var/run/rsyncd.pid`
2.判断一个服务是否正在运行 当服务停止时.找不到此文件
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服务的虚拟用户
useradd rsync -M(不创建家目录) -s /sbin/nologin虚拟用户的shell名称
此处注意事项:当我们创建用户的时候,系统提示无法打开passwd文件,此时我们查看passwd文件和useradd的绝对路径文件发现没有权限都是正常的,没有权限阻止问题,
查看别名设置也没有找到相关useradd的设置,上网查证问题所在,突然想到此前设置扩展属性的时候对passwd进行了锁止操作,查看文件属性,果然发现 i ,设置了 i 导致root用户也无法对文件进行修改
将文件的扩展属性取消,再添加用户,用户添加成功
步骤四:创建备份服务认证密码文件
echo "rsync_backup:oldboy123" >/etc/rsync.password
密码文件是明文的,需要修改其权限只让属主能看和修改此文件
步骤五:创建备份目录并修改属主属组信息
创建/backup备份目录 使其属主和属组都为rsync用户
步骤六:启动备份服务
2) rsync守护进程客户端配置(要备份数据的服务器)
步骤一:查看rsync软件是否存在 rpm -qa rsync yum install -y rsync
步骤二:创建一个密码文件
echo "oldboy123" > /etc/rsync.password
步骤三:免交互传输数据测试
需要熟悉rsync守护进程名称语法:
客户端做拉的操作: 恢复数据
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
客户端做退的操作: 备份数据
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
src: 要推送备份数据信息
[USER@]: 指定认证用户信息
HOST: 指定远程主机的IP地址或者主机名称
::DEST: 备份服务器的模块信息
rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
免交互方式常用来做定时任务时使用
04 守护进程模式测试
05 守护进程模式原理
1 2 : 当客户端执行命令的时候,此时连接到服务端,服务端会查询配置文件/etc/rsyncd.co查看认证用户
3 :客户端发送过来认证用户是rsync_backup,服务端查看配置文件也是,则认证用户通过,若两边认证用户不一致则会出现如下错误
4 5 :认证用户确认后会再次确认密码信息,服务端查看文件/etc/rsync.password 以客户端的密码进行比较,比较通过后进行下一步
6 7 : 客户端发送过来的文件是以root用户发送的,此时服务端要将文件属主属组信息转换为rsync虚拟用户信息
7~ :将数据以rsync用户身份写入配置文件中的备份目录中,若此时服务端没有备份目录则会出现下属错误
8~ : 一切正常时命令执行通过,文件完成备份注意:在服务端创建目录的时候一点要将/backup目录的属主属组信息变为rsync不然会出现下属错误
6 rsync命令参数详细说明
-v --verbose(信息) 显示详细的传输信息
-z --compress(yasuo) 传输时进行压缩以提高传输速率
-a --archive(归档) 命令的归档参数 包含:rtopgDl
-r --recursive(递归) 递归参数
-t --time 保持文件属性时间信息不变(修改时间)
-o --owner 保持文件属主信息不变
-g --group 保持文件属组信息不变
ps:如何让-o和-g参数生效
修改服务端的配置文件,将uid和gid改为源文件的属主属组,再关闭超级用户的权限即可
-p --perms 保持文件权限信息不变
-D 保持设备文件信息不变
-l --links 保持链接文件属性不变
-L 保持链接文件数据信息不变
-P 显示数据传输的进度信息
-e "ssh -p 52113" 指定使用的信道协议及端口
--exclude=PATTERN(式) 排除指定数据不被传输
--exclude-from=file 排除指定数据不被传输(批量传输)
--bwlimit=RATE 显示传输的速率 100Mb / 8 =12.5MB
--delete 无差异同步参数
7 rsync守护进程扩展实践
01 守护进程多模块功能配置
在企业中可能会有多个部门多个数据信息需要进行备份,为了使各部门数据不会混在一起,系统提供了多模块功能设计
例: 企业中有如下部门
sa sa_data.txt
devdate dev_date.txt
dba dba_date.txt 各部门需要将数据备份到不同的目录中
在服务端rsync配置文件中进行配置:添加备份目录模块信息
创建目录,修改属主属组信息
在客户端上传数据,将不同的数据传输到不同的目录中
查看数据传输情况
02 守护进程的排除功能实践
准备环境
需求01: 将/oldboy目录下面 a目录数据全部备份 b目录不要备份1.txt文件 c整个目录不要做备份
利用--exclude=PATERN
绝对路径方式:排除的文件路径是绝对路径
相对路径方式:排除的文件路径是相对路径
总结:由于7对系统的优化,绝对路径和相对路径都可以实现备份数据
需求02: 将/oldboy目录下面 a目录数据全部备份 b目录不要备份1.txt文件 c整个目录1.txt 3.txt文件不要备份
利用--exclude-from=file --批量删除(对于批量排除来说,我们需要将多个文件整理成一个文件,再将整理好的文件排除即可)
步骤一:编辑一个排除文件(排除的时候需要将文件本身也加进去)
步骤二:实现批量排除
03 守护进程来创建备份目录
由于客户端较多,当相同的数据如/etc/hosts都要备份到服务端上同一个/backup时,此时会出现问题,由于rsync是增量备份,对于相同 的文件来说不重新备份,也就是只能备份一个hosts文件,此时需要在/backup下创建关于客户端的下级目录,系统提供在客户 端自己创建下级目录,不用到服务端创建
创建下级目录:
注意::无法创建多级目录
04 守护进程的访问控制配置
守护进程白名单和黑名单功能
第一种情况:只有允许的白名单,没有禁止的黑名单
只允许白名单的流量通过,不允许其他流量通过
第二种情况:没有允许的白名单,只有禁止的黑名单
只有禁止的流量无法通过,其他正常通过
第三种情况:既有允许的白名单.又有禁止的黑名单
允许的流量通过,禁止的流量不能通过
特殊情况:即允许又禁止
即允许又禁止的情况下,白名单的配置优先于黑名单
正常情况:白名单没有,黑名单也没有
对于既不在白名单也不在黑名单的流量是允许通过的
05 守护进程的列表功能配置
有些时候当客户端要往服务端备份数据的时候,不清楚自己要备份的目录是哪个,可以利用命令查询目录模块列表信息
利用命令可查看到目录列表信息,但由于此设置伴随安全风险问题.所以建议还是关闭列表功能