2024-08-17 22:21阅读: 9评论: 0推荐: 0

rsync备份【基于客户端与服务端】

一、需求

1、客户端

  1. 客户端提前准备存放到的备份目录,目录规则如下:/backup/nfs_IP+年/月/日
  2. 客户端在本地打包备份(将etc目录中所有的普通文件打包)拷贝到目标目录/backup/nfs_IP+年/月/日
  3. 客户端最后将备份的数据进行推送到备份服务器中
  4. 客户端每天凌晨1点定时执行该脚本
  5. 客户端服务器本地保留最近7天的数据,避免浪费磁盘空间

2、服务端

  1. 服务端部署rsync,用于接收客户端推送过来的备份数据
  2. 服务端需要每天校验客户端推送过来的数据是否完整?[可以通过md5sum]
  3. 服务端需要每天校验结果并推送给管理员
  4. 服务端仅保留6个月的备份数据,其余全部删除

二、客户端脚本配置

#!/bin/bash

# 创建文件夹
mkdir /backup
# 创建包含自身ip和时间的一个目录
mkdir -p /backup/nfs_`ifconfig eth0|awk 'NR==2{print $2}'`_`date +%F`

# 对需要的目录或者文件进行压缩
tar -zcvf /backup/nfs_`ifconfig eth0|awk 'NR==2{print $2}'`_`date +%F`/etc.tar.gz $(find /etc/ -type f)

# 进入对应文件夹,避免'/'报错提示
cd /backup/nfs_`ifconfig eth0|awk 'NR==2{print $2}'`_`date +%F`

# md5校验,避免数据传输之后数据错乱
md5sum etc.tar.gz > md5xfs.log

# 上传
rsync -azv /backup/ rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.pass

# 客户端服务器本地保留最近7天的数据,避免浪费磁盘空间
find /backup/ -ctime +7 -name 'xfs.*'|xargs -rm

三、服务端脚本配置

#!/bin/bash

cd /backup/nfs_`ifconfig eth0|awk 'NR==2{print $2}'`_`date +%F`		# 进入对应文件夹(根据具体情况而定+)
md5sum -c md5xfs.log							# 进行MD5校验
if [ $? -eq 0 ];then 			# 判断上一级最终结果是否为0,这里是shell
        echo "验证成功" | mail -s "验证结果" 15719154792@163.com
else
	echo "验证失败" | mail -s "验证结果" 15719154792@163.com
fi
find /backup/ -ctime +180 -name "nfs.*" -exec rm -rf {} \;

本文作者:Dusk_Yun

本文链接:https://www.cnblogs.com/9Dusk/p/18365085

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Dusk_Yun  阅读(9)  评论(0编辑  收藏  举报
评论
收藏
关注
推荐
深色
回顶
收起
点击右上角即可分享
微信分享提示