1.全网数据备份需求
  • 需要备份文件或目录重要文件内容(根据不同服务备份不同的文件内容):
    /var/spool/cron/root 、/etc/rc.local、/apps/source
  • 每台服务器进行备份都先将所有的文件压缩到本地/backup目录下
  • 每台服务器进行本地备份时,都备份到/backup下以本机局域网IP地址命令的目录下
  • 本地打包的压缩文件名中需要包含执行当天的日期
  • 本地服务器需要将超过7天的备份数据删除
  • 存储服务器通过rsync daemon方式提供存储备份数据目录 /backup
  • 存储备份服务器每天进行数据校验,并且将结果通过邮件方式将结果发送至管理员邮箱
  • 存储备份服务器每天定时检查删除超过180天的备份数据,但备份文件以sava结尾的数据需要永久保留
2.实现环境
3.1本地服务器操作
3.1.1 命令行将备份目录打包

cd /
tar zcvfh /backup/backup_$(date +%F).tar.gz var/spool/cron/root etc/rc.local apps/source
4.全网数据备份案例

3.1.2 命令行推送

rsync -avz /backup/ [email protected]::backup --password-file=/etc/rsync.password
4.全网数据备份案例

3.1.3 命令行删除7天前数据

find /backup/ -type f -name “*.tar.gz” -mtime +7|xargs rm -f
4.全网数据备份案例

3.1.4 获取本机IP地址

ifconfig eth0 |awk -F “[ :]+” ‘NR==2{print $4}’
4.全网数据备份案例

3.1.5 根据命令行编写基础脚本执行语句

创建脚本存放路径:mkdir -p /server/scripts 操作规范
进入脚本目录:cd /server/scripts/
创建脚本:vim data_bak.sh
4.全网数据备份案例

基本功能脚本:

#进入根目录
cd / &&
#打包备份文件
tar zcfh /backup/backup_$(date +%F).tar.gz var/spool/cron/root etc/rc.local apps/source &&
#推送到服务器端
rsync -az /backup/ [email protected]::backup --password-file=/etc/rsync.password &&
#删除7天前数据
find /backup/ -type f -name “*.tar.gz” -mtime +7|xargs rm -f
4.全网数据备份案例
但服务器端需要对文件做检查,需要对打包的文件对md5值记录,并且将md5值文件传给服务器端供服务器端数据校验

3.1.6 生成MD5标记文件,防止文件传输被串改

#进入根目录
cd / &&
#打包备份文件
tar zcfh /backup/backup_KaTeX parse error: Expected 'EOF', got '#' at position 69: …ps/source &&\ #̲生成md5校验码 md5sum…(date +%F).tar.gz > /backup/flag_$(date +%F).log &&
#推送到服务器端
rsync -az /backup/ [email protected]::backup --password-file=/etc/rsync.password &&
#删除7天前数据
find /backup/ -type f -name “*.tar.gz” -mtime +7|xargs rm -f
4.全网数据备份案例
4.全网数据备份案例

3.1.7 客户机打包到各自IP目录下

#取本机IP
IP=$(ifconfig eth0 |awk -F “[ :]+” ‘NR==2{print $4}’)
#本地目录
Path=/backup
#当前时间
Time=$(date +%F)
#创建IP目录
mkdir $Path/$IP/ -p
#进入根目录
cd / &&
#打包备份文件
tar zcfh $Path/$IP/backup_$Time.tar.gz var/spool/cron/root etc/rc.local apps/source &&
#生成md5校验码
md5sum $Path/$IP/backup_$Time.tar.gz > $Path/$IP/flag_$(date +%F).log &&
#推送到服务器端
rsync -az $Path/ [email protected]::backup --password-file=/etc/rsync.password &&
#删除7天前数据
find $Path/ -type f -name “*.tar.gz” -mtime +7|xargs rm -f
4.全网数据备份案例

3.1.8每周一文件打包成需要保存文件(文件结尾-save命名)

#取本机IP
IP=$(ifconfig eth0 |awk -F “[ :]+” ‘NR==2{print $4}’)
#本地目录
Path=/backup
#当前时间
if [ $(date +%w) -eq 1 ]
then
Time=$(date +%F)’-save’
else
Time=$(date +%F)
fi
#创建IP目录
mkdir $Path/$IP/ -p
#进入根目录
cd / &&
#打包备份文件
tar zcfh $Path/$IP/backup_$Time.tar.gz var/spool/cron/root etc/rc.local apps/source &&
#生成md5校验码
md5sum $Path/$IP/backup_$Time.tar.gz > $Path/$IP/flag_$Time.log &&
#推送到服务器端
rsync -az $Path/ [email protected]::backup --password-file=/etc/rsync.password &&
#删除7天前数据
find $Path/ -type f -mtime +7 ( -name “.log" -o -name ".tar.gz” )|xargs rm -f
4.全网数据备份案例

3.1.9 加入定时任务

crontab -e
#back data by silly at 20190414
00 00 * * * /bin/sh/server/scripts/data_bak.sh >/dev/null 2>&1
4.全网数据备份案例
脚本文件路径下载地址: https://download.csdn.net/download/cen50958/11119294

3.2存储服务器命令

创建脚本存放路径:mkdir -p /server/scripts 操作规范
进入脚本目录:cd /server/scripts/
创建脚本:vim check_backdata_and_del.sh
4.全网数据备份案例
脚本内容
  脚本中的接收邮箱地址,需要填写为个人的邮箱地址
脚本内容:
 Path=/backup
 #当前时间
 if [ $(date +%w) -eq 1 ]
 then
    Time=$(date +%F)’-save’
 else
 Time=$(date +%F)
 fi
 #md5比对后结果文件路径
 PathResult=/var/backup/${Time}_result.log
 #设置环境为英文
 LANG=en
 #验证文件是否被串改
 find $Path/ -type f -name “${Time}.log" |xargs md5sum -c >> $PathResult
 #发送邮件
 mail -s “$Time server bak check result” [email protected] < $PathResult
 #查找180天以前的文件
 find $Path/ -type f -mtime +180 ! -name "
-save.tar.gz” |xargs rm -f
4.全网数据备份案例
脚本文件路径下载地址:
https://download.csdn.net/download/cen50958/11119312

相关文章: