数据服务-备份服务(rsync)

1. 概述

特点:

1. rsync是个服务也是命令

2. 使用方便,具有多种模式

3. 传输数据的时候是增量传输

  1.1 增量与全量

1. 增量:只会把修改,新建的内容推走

2. 全量:无论数据多少全部推送

 1.2 把/etc/目录传输到另一台机器的/tmp/下面

方法1:
 scp -r /etc/sysconfig/  root@10.0.0.31:/tmp/
方法2:
rsync -avz /etc/sysconfig/   root@10.0.0.31:/mnt/

2. Rsync应用场景 

应用场景应用建议
rsync作为命令使用临时拉取,推送数据.未来这个需求可以通过scp命令实现
定时备份:rsync服务+定时任务定时备份,定期备份案例
 rsync服务+sersync/lsyncd实现实时同步解决存储服务单点问题
rsync服务与异地容灾找一个异地的服务器存放备份

 3. Rsync使用模式

模式应用场景
远程模式传输数据(临时使用可以使用scp替代)
rsync守护进程模式(daemon)传输数据(不需要密码),用于定时备份,定时同步.

4. rsync不同的模式 

4.1 rsync本地模式

在rsync对于目录 /etc/ /etc 是有区别的.

/etc /etc目录+目录的内容

/etc/ /etc/目录下面的内容

4.2 远程模式 

rsync -a   源文件   目标
##推送:
rsync  /etc/hostname  root@10.0.0.31:/tmp
##拉取
rsync  root@10.0.0.31:/etc/hosts  /opt/

4.2.1 推送/etc/hostname 到10.0.0.31的/tmp/目录

 rsync /etc/hostname  root@10.0.0.31:/tmp/

4.2.2 推送/etc 目录及目录内容 到10.0.0.31的 /tmp下面

推送第1次 全量

rsync -av /etc  root@10.0.0.31:/tmp/

推送第2次 发现没有推送

 创建文件再次推送

#创建文件
touch /etc/  xzb66.txt
#再次推送
rsync -av /etc  root@10.0.0.31:/tmp/

通过scp推送 /etc 目录及目录内容 到10.0.0.31的 /opt 下面 

scp -r  /etc/  root@10.0.0.31:/opt/ 
## -r  递归传输

 5. 守护进程模式

5.1 检查安装

##检查安装 更新
yum install -y rsync
##检查软件包内容
/etc/rsyncd.conf  #配置文件
/usr/bin/rsync    #命令
/usr/lib/systemd/system/rsyncd.service #systemctl对应的配置文件.

5.2 编写配置文件 

#created by xzb 19:49 2024-9-29
##rsyncd.conf start## 
fake super =yes   ##如果不开启,则传输报错,伪装成root权限
uid = rsync       ##rsync 运行的用户
gid = rsync       ##rsync 运行的虚拟用户
use chroot = no
max connections = 2000
timeout = 600
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 = 10.0.0.0/24       ##只允许改ip网段的人访问  白名单
#hosts deny = 0.0.0.0/32         ##黑名单
auth users = rsync_backup        ##rsync服务端进行验证的用户:用户名
secrets file = /etc/rsync.password  ##rsync服务端进行验证:密码
#####################################
[data]                           ## 模块名字,用户客户端访问服务端指定的名字
comment = www by xzb 19:49 2024-9-29  ##注释说明
path = /data                      ##模块对应的目录

5.3 启动服务

#启动服务
systemctl enable rsyncd 
systemctl start rsyncd

5.4 检查端口,检查端口

 ss -lntup
 ps -ef |grep rsync

 5.5 后续配置

#1.添加虚拟用户
useradd  -s /sbin/nologin -M   rsync
#2.创建密码文件
####密码文件格式:用户名:密码
echo 'rsync_backup:a' >/etc/rsync.password 
chmod 600 /etc/rsync.password
#共享目录与权限
mkdir /data/
chown -R rsync  /data/ 

5.6 本地测试

5.7 客户端测试

##将nfs01下的文件备份到10.0.0.31上
[root@nfs01_blog ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.31::data

 5.7 免密码传输数据到服务端

##将密码写入rsync.client中
[root@nfs01_blog ~]# echo 'a' >/etc/rsync.client
##修改读写权限
[root@nfs01_blog ~]# chmod 600 /etc/rsync.client
##添加--password-file 参数
[root@nfs01_blog ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.31::data --password-file=/etc/rsync.client

 6. rsync选项

rsync选项含义
-a-rlptgoD -r递归复制 -l复制软连接 -p保持权限不变 -m保持修改时间不变 -o所有者不变 -g用户组不变-D devices specials 设备与特殊文件
-v显示过程
-z传输数据的时候进行压缩
--bwlimit限速,注意不要与-z一起使用
--exclude排除
--delete目标目录与源目录保持一致的传输

 6.1 限速并传输

rsync -aP --bwlimit=500kb /etc/hostname 10.0.0.31:/tmp/

6.2 传输并排除 

##排除04,05
rsync -avz /data/ root@10.0.0.31:/tmp/ --exclude={04,05}.txt

 6.3 保持源与目标数据一致

 7. 全网备份

7.1 环境准备

角色主机运行服务
存放备份back_up_xingrsync服务端
生成备份nfs01_blogrsync客户端

7.2 项目步骤 

步骤说明详细内容
rsync服务端并调试服务端配置/backup/目录
rsync客户端节点配置脚本

1.备份

2. 推送

3. 清理

其他节点匹配值定时任务定时运行脚本
在备份服务器上检查并发送结果邮件rsync服务端检查备份并发送邮件

7.3 rsync服务端调试 

##在/etc/rsyncd.conf中配置
[backup]           
comment = 收集备份 
path = /backup/ 
##创建目录
mkdir -p /backup/
##共享权限和目录
chown -R rsync /backup/
##远程测试

7.4 客户端备份脚本

#!/bin/bash
##############################################################
# File Name:23-rsync.sh
# Version:V1.0
# Author:xzb996
# Desc:备份配置文件
##############################################################
#1.vars
ip=`hostname -I |awk '{print $1}'`
time=`date +%F_%w`
backup_dir=/backup/$ip/
#2.备份
mkdir -p $backup_dir
tar zcf $backup_dir/conf-$time.tar.gz /etc/

#3. 推送
rsync -avz /backup/  rsync_backup@172.16.1.31::backup --password-file=/etc/rsync.client
#4. 清理
find backup_dir -type f -name "*.tar.gz" -mtime +7 |xargs rm -f

客户端备份成功

 服务端备份成功

7.5 服务端脚本调试

#!/bin/bash
##############################################################
# File Name:23-rsync.sh
# Version:V1.0
# Author:xzb996
# Desc:检查备份与清理备份
##############################################################
time=`date +%F_%w`
##检查
tree /backup/  |mail -s "备份结果 $time" youxiang@qq.com 
##清理备份
find /backup/ -type f -name "*.tar.gz" -mtime +180|xargs rm -f 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旦沐已成舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值