客户端需求: 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} rsync_backup@172.16.1.41::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} rsync_backup@172.16.1.41::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 from=1032364548@qq.com #发送邮箱 set smtp=smtps://smtp.qq.com:465 set smtp-auth-user=1032364548@qq.com #接收邮箱 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" 1032364548@qq.com 4,服务端仅保留 6 个月的备份数据,其余的全部删除 1,find /backup –type d -mtime +180|xargs rm -rf