备份服务-rsync

  • A+
所属分类:linux技术
摘要

备份服务器存在意义:
1 将所有数据信息进行汇总收集 ELK 分析日志软件
2 可以将数据信息进行还原恢复

备份服务器存在意义:
1 将所有数据信息进行汇总收集 ELK 分析日志软件
2 可以将数据信息进行还原恢复

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

全量备份:每次同步过程,都是将全部数据重新保存备份
增量备份:每次同步过程,只是将变化的数据进行保存备份

增量备份实现是基于算法实现的:
1)在传输数据文件前, 比较每个文件属性信息
2) 基于算法加密值原理, 比较每个文件数值不同

rsync软件功能介绍
类似于 cp 命令 -- 实现本地备份传输数据

类似于scp 命令 -- 远程备份传输数据

类似于 rm 命令 -- 实现无差异同步备份

类似于 ls 命令 -- 本地文件信息查看

rsync 命令属于1 v 4 的命令
备份服务软件3种工作方式
1 本地数据备份
Local: rsync [OPTION...] SRC... [DEST]
cp -a /etc/hosts /tmp/hosts_cp
rsync -a /etc/hosts /tmp/hosts_rsync
2 远程数据备份
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST] 拉方式
rsync -avz [email protected]:/backup/week01/ /tmp/

Push: rsync [OPTION...] SRC... [USER@]HOST:DEST 推方式
rsync -avz /backup/week01/ [email protected]:/backup/
需要备份数据服务器:
pull 将远程备份服务器的数据进行获取到本地,将数据需要进行还原
push 将本地主机中数据进行传输备份服务器中,实现数据备份操作

备份服务器:
pull:将所有服务器中重要数据进行获取,保存在本地主机中
push:将备份服务器数据推送到远程主机上, 用于数据还原操作

3 守护进程备份数据
Access via rsync daemon:
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync -avz 本地备份数据 认证用户@172.16.1.41::模块名称
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync -avz 认证用户@172.16.1.41::模块名称 本地目录

守护进程 vs 远程备份
1)需要开启一个备份服务端程序
2)可以控制同时存储数据访问量
3)可以实现访问安全控制机制
4) 数据备份过程需要有认证禁止
5)可以实现免交互过程传输数据

rsync备份服务部署
部署环境:
CentOS Linux release 7.8.2003 (Core)
服务端部署
1查看软件程序是否部署
[root@backup tools 22:04:10]]# rpm -qa rsync
rsync-3.1.2-10.el7.x86_64
2编写服务配置文件
vim /etc/rsyncd.conf
uid = rsync
gid = rsync
port = 873
fake super = yes
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
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

3创建一个虚拟用户
[root@backup backup 22:16:18]]# useradd -s /sbin/nologin -M rsync
4创建数据备份目录/修改数据目录属主权限
[root@backup backup 22:20:05]]# mkdir /backup/
[root@backup backup 22:17:44]]# chown -R rsync.rsync /backup/
5创建本地密码文件
[root@backup backup 22:24:23]]# echo "rsync_backup:test123" >/etc/rsync.password
[root@backup backup 22:25:24]]# chmod 600 /etc/rsync.password #这里只有root用户可以查看
6启动服务程序
[root@backup backup 22:27:00]]# systemctl start rsyncd
[root@backup backup 22:27:04]]# systemctl enable rsyncd
客户端部署
1查看是否部署软件程序
[root@nfs01 ~ 22:28:42]]# rpm -qa rsync
rsync-3.1.2-10.el7.x86_64
2创建密码文件并赋予权限
[root@nfs01 ~]# echo "test123" >/etc/rsync.password
[root@nfs01 ~]# chmod 600 /etc/rsync.password

如何实现免交互传输数据
免交互传输数据方法一:
echo test123 >/etc/rsync.password
chmod 600 /etc/rsync.password
rsync -avz /etc/hosts [email protected]::backup --password-file=/etc/rsync.password
免交互传输数据方法二:
/etc/profile
export RSYNC_PASSWORD=test123
rsync -avz /etc/hosts [email protected]::backup

客户端测试:
rsync -avz /etc/hosts [email protected]::backup --- 测试传输文件
rsync -avz /oldboy [email protected]::backup --- 测试传输目录
传输目录结尾没有 / 时, 表示将目录本身以及目录内容都做备份保存
rsync -avz /oldboy/ [email protected]::backup --- 测试传输目录
传输目录结尾有 / 时, 表示只是将目录下面的内容进行保存备份

备份配置文件参数说明
uid = rsync --- 指定映射用户名称
gid = rsync --- 指定映射与用户组名称
port = 873 --- 指定服务端口信息
fake super = yes --- 伪装超级管理员用户 rsync映射用户会修改原有文件属主和属组信息
use chroot = no --- 安全配置功能
max connections = 200 --- 设置并发连接数量
timeout = 300 --- 设置连接超时时间
pid file = /var/run/rsyncd.pid --- pid文件记录服务进程编号
1)确认服务状态 有文件存在 服务启动 / 没有文件 服务关闭
2)对服务进行停止操作 kill `cat /var/run/rsyncd.pid`
lock file = /var/run/rsync.lock --- 备份服务lock文件 限定网络连接数
log file = /var/log/rsyncd.log --- 备份服务日志文件 用于排错
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 = "用户备份运维人员数据" --- 注释说明信息
path = /backup/ --- 定义备份数据目录