1.客户端提前准备存放的备份的目录,目录规则如下:/backup/localhost_192.168.51.187_2022-07-19
2.客户端在本地打包备份(系统配置文件、应用配置等)拷至/backup/localhost_192.168.51.187_2022-07-19
3.客户端最后将备份的数据进行推送至备份服务器
4.客户端服务器本地保留最近7天的数据, 避免浪费磁盘空间 find
客户端推送时进行打一个标签。
服务端去验证这个标签就可以。
在部署好rsync服务端的前提下
1.服务端需要每天校验客户端推送过来的数据是否完整
2.服务端需要每天校验的结果邮件通知给管理员
3.服务端仅保留6个月的备份数据,其余的全部删除
注意:所有服务器的备份目录必须都为/backup
cat /scripts/client_push_backup.sh
#! /bin/bash
Path=/backup
Host=$(/usr/bin/hostname)
Addr=$(/usr/sbin/ifconfig ens192|awk 'NR==2{print $2}')
Date=$(/usr/bin/date +%F)
BackDir=$Path/$Host_$Addr_$Date
#1.创建本地存储备份的目录
mkdir -p $BackDir
#2.拷贝需要备份的文件至该目录,通过设置md5值来核验文件的完成
/usr/bin/tar czf $BackDir/sys.tar.gz /etc/fstab /etc/hosts && md5sum $BackDir/*.tar.gz >$BackDir/flag_$Date
#3.推送数据至备份服务器
export RSYNC_PASSWORD=123
rsync -av $BackDir rsync_backup@192.168.51.187::backup
#4.保留最近7天的数据
/usr/bin/find $Path -maxdepth 1 -type d -mtime +7 |xargs -t rm -rf
邮件通知,前提需要安装mailx
yum install mailx -y
配置
vim /etc/mail.rc
#文件的最后添加如下内容
set from=xxxxxxxx@qq.com #发件人的邮箱
set smtp=smtps://smtp.qq.com:465 #qq的邮箱服务器
set smtp-auth-user=xxxxxxxx@qq.com #发件人的账户
set smtp-auth-password= #发件人的(授权码)在QQ邮箱网页版里找
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
脚本
#!/bin/bash
Path=/backup
Date=$(/usr/bin/date +%F)
#1.校验客户端推送的数据,核验md5值,并把结果保存为文件
/usr/bin/md5sum -c $Path/*/flag_${Date} >$Path/result_${Date}
#2.读取校验结果的文件,通过邮箱发送给管理人员
方式:mail -s "主题" 邮箱地址
mail -s "rsync Backup ${Date}" xxxxxxxx@qq.com <$Path/result_${Date}
#3.最后做数据的清理(result文件每天产生,保留最近3天即可)
/usr/bin/find $Path -type f -name '"result_*" -mtime +3 |xargs rm -rf
/usr/bin/find $Path -type d -maxdepth 1 -mtime +180 |xargs rm -rf
如果新增了一台服务器,如何快速进行备份
假设新启动一台服务器: 通过rsync的远程传输模式将脚本传输过去再运行即可