客户端需求:
1. 客户端 每天凌晨1点在服务器本地打包备份(系统配置文件\日志文件\其他目录\应用配置等文件)
1)需要打包文件/etc/fastab,/var/log/message,/var/log/secoure
2)打包文件

cd / && tar –zcvf /backup/sys.tar.gz etc/fastab
cd / && tar –zcvf /backup/log.tar.gz var/log/message var/log/secoure

2. 客户端备份的数据必须存放至以主机名_ip地址_当前时间命名的目录中

1)取主机名
HOST=$(hostname)
2)取ip地址
IP=$(ip add show eth1|awk 'NR==3'|awk -F'[ /]+' '{print $3}')
3)取当前时间
DATE=$(date +%F)
BACKUP=/backup
DEST=${BACKUP}/${HOST}_${IP}_$DATE
mkdir –p ${DEST}
cd / && tar –zcvf ${DEST}/sys.tar.gz etc/fastab
cd / && tar –zcvf ${DEST}/log.tar.gz var/log/message var/log/secoure

3. 客户端最后通过rsync推送本地已经打包好的备份文件至backup服务器
1)

export RSYNC_PASSWD=“oldboy”
rsync –azvP ${DEST} [email protected]::backup 

============================脚本=============================

vi /server/scripts/backup.sh
#!/bin/bash
HOST=$(hostname)
IP=$(ip add show eth1|awk 'NR==3'|awk -F'[ /]+' '{print $3}')
DATE=$(date +%F)
BACKUP=/backup
DEST=${BACKUP}/${HOST}_${IP}_$DATE
mkdir –p ${DEST}
cd / && tar –zcvf ${DEST}/sys.tar.gz etc/fstab
cd / && tar –zcvf ${DEST}/log.tar.gz var/log/messages var/log/secure
md5sum ${DEST}/sys.tar.gz >${DEST}/md5.txt
md5sum ${DEST}/log.tar.gz >>${DEST}/md5.txt
md5sum ${DEST}/*.tar.gz >${DEST}/md5.txt
优化:
md5sum ${DEST}/*.tar.gz >${DEST}/${DATE}_md5.txt

export RSYNC_PASSWORD=“oldboy”
rsync –azvP ${DEST} [email protected]::backup 

4.客户端服务器本地保留最近7天的数据,避免浪费磁盘空间
做一个测试脚本,生成一个三十天的数据

vi /server/scripts/test.sh
#!/bin/bash
for i in {1..30}
do
    date –s 2019/07/${i}
sh /server/scrpits/backup.sh
done

2)find /backup –type d –mtime +7 |xargs rm -rf

服务端需求:
1. 服务端部署 rsync,用于接收客户端推送过来的备份数据
yum –y install rsync
systemctl start rsync

2. 服务端需要每天校验客户端推送过来的数据是否完整
校验是在客户端封装再发给服务端,服务端再校验。所以这个任务其实是在客户端去做
MD5校验

vi /server/scripts/check.sh
#!/bin/bash
DATE=$(date +%F)
find /backup/ -type f -name "${DATE}_md5.txt"|xargs md5sum -c

3. 服务端需要每天校验的结果通知给管理员
1,直接使用mailx邮件
yum –y install mailx
2,配置文件/etc/mailx.rc
set [email protected] #发送邮箱
set smtp=smtps://smtp.qq.com:465
set [email protected] #接收邮箱
set smtp-auth-password=xxxxxxxx #注册码
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
3,脚本验证
vi /server/scripts/check.sh
#!/bin/bash
DATE=$(date +%F)
find /backup/ -type f -name "${DATE}_md5.txt"|xargs md5sum -c|mail -s "test" [email protected]
4,服务端仅保留 6 个月的备份数据,其余的全部删除
1,find /backup –type d -mtime +180|xargs rm -rf