我叫张贺,贪财好色。一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网站运维工作,爱好佛学和跑步。
个人博客:传送阵
笔者微信:zhanghe15069028807
,非诚勿扰。
客户端脚本
#第一步,定义变量
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
Host=$(hostname)
Ip=$(hostname -I | cut -d' ' -f1)
Date=$(date +%F)
Dest=${Host}_${Ip}_${Date}
Path=/backup
#第二步,创建备份的目录
[ -d /backup ] || mkdir /backup
#第三步,打包压缩保存到/backup目录里面
mkdir -p $Path/$Dest &>/dev/null
cd / && \
[ -f $Path/$Dest/sys.tar.gz ] || tar czf $Path/$Dest/sys.tar.gz etc/hosts etc/fstab var/spool/cron/root && \
[ -f $Path/$Dest/other.tar.gz ] || tar czf $Path/$Dest/other.tar.gz server/scripts/ && \
[ -f $Path/$Dest/flag ] || md5sum $Path/$Dest/*.tar.gz > $Path/$Dest/flag && \
#第四步,定义rsync密码,将$path目录里面的文件推送到服务器的path模块当中
export RSYNC_PASSWORD=1
rsync -avz $Path/ [email protected]::backup
#第五步,仅保存最近七天的数据
find $Path -type f -mtime +7 | xargs rm -f
服务端脚本
[root@BACKUP scripts]# cat backup.sh
#!/bin/bash
第一步,定义变量
Path=/backup
Date=$(date +%F)
第二步,进行校验
md5sum -c $Path/*_$Date/flag > $Path/result_$Date
第三步,发邮件
mail -s "Rsync Backup $Date" [email protected] < $Path/result_$Date
仅保存6个月的数据
find $Path -type d -mtime +180 | xargs rm -f
find $Path -type f -mtime +7 -name "result*" -exec rm -f {} \;