一、需求
1、客户端
- 客户端提前准备存放到的备份目录,目录规则如下:/backup/nfs_IP+年/月/日
- 客户端在本地打包备份(将etc目录中所有的普通文件打包)拷贝到目标目录/backup/nfs_IP+年/月/日
- 客户端最后将备份的数据进行推送到备份服务器中
- 客户端每天凌晨1点定时执行该脚本
- 客户端服务器本地保留最近7天的数据,避免浪费磁盘空间
2、服务端
- 服务端部署rsync,用于接收客户端推送过来的备份数据
- 服务端需要每天校验客户端推送过来的数据是否完整?[可以通过md5sum]
- 服务端需要每天校验结果并推送给管理员
- 服务端仅保留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/ [email protected]::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 "验证结果" [email protected]
else
echo "验证失败" | mail -s "验证结果" [email protected]
fi
find /backup/ -ctime +180 -name "nfs.*" -exec rm -rf {} \;
标签:rsync,备份,nfs,backup,服务端,客户端
From: https://www.cnblogs.com/9Dusk/p/18365085