返回顶部

linux 综合架构 —— 备份服务

备份服务器说明

作用:

  • 01. 数据备份的服务器

  • 02. 进行日志统一保存

rsync服务

什么是rsync服务

  • Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具

安装

yum install -y rsync

rsync软件使用方法

a 本地备份数据 相当于cp

rsync /etc/hosts /tmp/host_rsync

b 远程备份数据 想当与 scp

在使用rsync备份目录时:

  • 备份目录后面有 / -- /oldboy/ : 只将目录下面的内容进行备份传输

  • 备份目录后面没有/ -- /oldboy : 会将目录本身以及下面的内容进行传输备份

  • -r --- 递归复制传输数据

  • -p --- 保持文件属性信息不变

scp -rp /etc/hosts root@172.16.1.41:/backup
rsync -rp /etc/hosts 172.16.1.41:/backup/hosts_rsync

c 替代删除命令 rm

  • --delete 实现无差异同步数据

面试题: 有一个存储数据信息的目录, 目录中数据存储了50G数据, 如何将目录中的数据快速删除  ( 如果使用 rm /目录/* -rf 速度回很慢)

rsync -rp --delete /null/ 172.16.1.41:/backup

d 替代查看文件命令 ls

rsync /etc/hosts

rsync命令语法格式

  • SYNOPSIS

  • Local: rsync [OPTION...] SRC... [DEST]

  • 本地备份数据:

  • src: 要备份的数据信息

  • dest: 备份到什么路径中

远程备份数据

Access via remote shell:

Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]

[USER@] --- 以什么用户身份拉取数据(默认以当前用户)

hosts --- 指定远程主机IP地址或者主机名称

SRC --- 要拉取的数据信息

dest --- 保存到本地的路径信息


Push: rsync [OPTION...] SRC... [USER@]HOST:DEST

SRC --- 本地要进行远程传输备份的数据

[USER@] --- 以什么用户身份推送数据(默认以当前用户)

hosts --- 指定远程主机IP地址或者主机名称

dest --- 保存到远程的路径信息

守护进程方式备份数据 备份服务

  • 01. 可以进行一些配置管理

  • 02. 可以进行安全策略管理

  • 03. 可以实现自动传输备份数据

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

rsync服务部署安装过程

linux系统安装部署服务流程:

  • a 下载安装软件 yum

  • b 编写配置文件

  • c 搭建服务环境 备份的目录/目录权限

  • d 启动服务程序 开机自动启动

  • e 测试服务功能

rsync 配置

第一个历程:编写配置文件

如何配置

man rsyncd.conf

编写配置文件

##created by HQ at 2017
###rsyncd.conf start##

uid = rsync       --- 指定管理备份目录的用户
gid = rsync       --- 指定管理备份目录的用户组
port = 873        --- 定义rsync备份服务的网络端口号
fake super = yes  --- 将rsync虚拟用户伪装成为一个超级管理员用户
use chroot = no   --- 和安全相关的配置
max connections = 200  --- 最大连接数  同时只能有200个客户端连接到备份服务器
timeout = 300          --- 超时时间(单位秒)
pid file = /var/run/rsyncd.pid   --- 记录进程号码信息 1.让程序快速停止进程 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                   --- 模块中配置参数 指定备份目录
/etc/rsyncd.conf

第二个历程:创建rsync服务的虚拟用户

useradd rsync -M -s /sbin/nologin

第三个历程: 创建备份服务认证密码文件

echo "rsync_backup:oldboy123" >/etc/rsync.password
chmod 600 /etc/rsync.password

第四个历程: 创建备份目录并修改属主属组信息

mkdir /backup
chown rsync.rsync /backup/

第五个历程: 启动备份服务

systemctl start rsyncd
systemctl enable rsyncd
systemctl status rsyncd

 rsync 守护进程使用详解

rsync命令参数详细说明

  • -v, --verbose 显示详细的传输信息

  • -a, --archive 命令的归档参数 包含: rtopgDl

  • -r, --recursive 递归参数

  • -t, --times 保持文件属性信息时间信息不变(修改时间)

  • -o, --owner 保持文件属主信息不变

  • -g, --group 保持文件属组信息不变

  • PS: 如何让-o和-g参数生效,需要将配置文件uid和gid改为root,需要将 fake super参数进行注释

  • -p, --perms 保持文件权限信息不变

  • -D, 保持设备文件信息不变

  • -l, --links 保持链接文件属性不变

  • -L, 保持链接文件数据信息不变

  • -P, 显示数据传输的进度信息

  • --exclude=PATTERN 排除指定数据不被传输

  • --exclude-from=file 排除指定数据不被传输(批量排除)

  • --bwlimit=RATE 显示传输的速率 100Mb/8=12.5MB,企业案例: 马路(带宽-半) 人人网地方

  • --delete 无差异同步参数(慎用),我有的你也有,我没有的你也不能有

客户端做拉的操作: 恢复数据

  • 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

src: 要推送备份数据信息

[USER@]: 指定认证用户信息

HOST: 指定远程主机的IP地址或者主机名称

::DEST: 备份服务器的模块信息

rsync守护进程客户端配置

第一个历程: 创建一个秘密文件

echo "oldboy123" >/etc/rsync.password
chmod 600 /etc/rsync.password

第二个历程: 进行免交互传输数据测试

rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

 查看服务端是否有客户端上传的文件

守护进程多模块功能配置使用

在 /etc/rsyncd.conf 添加新的模块 dba dev

[dba]
comment = "backup dir by oldboy"
path = /dba
[dev]
comment = "backup dir by oldboy"
path = /devdata

创建备份目录 

mkdir /dba
chown rsync.rsync /dba/

mkdir /devdata
chown rsync.rsync /devdata/

重启服务

systemctl start rsyncd
systemctl enable rsyncd
systemctl status rsyncd

在 nfs01 装备测试环境  

mkdir -p /oldboy
mkdir -p /oldboy/{a..c}
touch /oldboy/{a..c}/{1..3}.txt
tree /oldboy

需求01: 将/oldboy目录下面 a目录数据全部备份 b目录不要备份1.txt文件 c整个目录不要做备份,使用 backup 模块

绝对路径方式

rsync -avz /oldboy --exclude=/oldboy/b/1.txt --exclude=/oldboy/c/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

备份服务器查看  

tree /backup/oldboy/

相对路径方式

rsync -avz /oldboy --exclude=b/1.txt --exclude=c/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password 

需求02: 将/oldboy目录下面 a目录数据全部备份 b目录不要备份1.txt文件 c整个目录1.txt 3.txt文件不要备份

  • --exclude-from=file --- 批量排除

第一个历程: 编辑好一个排除文件

b/1.txt
c/1.txt
c/3.txt
exclude.txt
cat /oldboy/exclude.txt

第二个历程: 实现批量排除功能

rsync -avz /oldboy --exclude-from=/oldboy/exclude.txt rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password 

03 守护进程来创建备份目录

rsync -avz /etc/hosts  rsync_backup@172.16.1.41::backup/10.0.0.31/ --password-file=/etc/rsync.password

 服务端查看

ls /backup/10.0.0.31/

使用建议

守护进程的访问控制配置

  • 守护进程白名单和黑名单功能
  • PS: 建议只使用一种名单

守护进程的列表功能配置

在配置文件中 /etc/rsyncd.conf  把 list 的设置为 true

 重启 rsyncd 服务

systemctl restart rsyncd

客户端查看

rsync rsync_backup@172.16.1.41::

 

posted @ 2019-11-20 00:07  Crazymagic  阅读(397)  评论(0编辑  收藏  举报