Rsync+md5sum+shell+crontab+mail实现实时数据备份的简单冗灾模型

3 篇文章 0 订阅
3 篇文章 0 订阅

前言

使用shell脚本+md5sum算法实现对客户端数据的备份并且生成文件独有校验码。再通过Rsync将其推送至备份服务器上,利用md5sum算法再次生成校验码,比较两次校验码,检查备份结果是否正常,最后通过mail将相关备份信息发送至指定邮箱。通过邮箱文件,管理员可以实时的知道备份进度,减少工作量,提高工作效率。

【企业案例】:
某公司里有一台Web服务器,里面的数据很重要,但是如果硬盘坏了,数据就会丢失,现在领导要求你 把数据在其他机器上做一个周期性定时备份。要求如下:
每天晚上00点整在Web服务器A上打包备份网站程序目录并通过rsync命令推送到服务器B上备份保存 (备份思路可以是先在本地按日期打包,然后再利用rsync推送到备份服务器上)。

1)rsync服务的socket方式传递,(客户端,服务端(web))
2)web服务器站点目录为(/var/www/html)
3)归档压缩web目录内容为日期格式,(例如:/backup/www.20190915.tar.gz),web服务器本地仅 保留7天内的备份。
4)备份服务器上检查备份结果是否正常(对比大小(服务文件—客户端文件对比)md5sum 生成校验码,使用校验码对比),并将每天的备份结果发给管理员信箱(自学)。
5)备份保留180天。

socket是一种进程方式,是rsync的特性。

1.脚本文件

#!/bin/bash
    cd /var/www #进入到/var/www目录下
    date=`date +%F` #记录当前时间
    tar -zcf /backup/www.$date.tar.gz  html #打包html目录
    tar_name=/backup/www.$date.tar.gz #备份文件名
    tar_md5sum=`md5sum $tar_name` #验证码
    rsync -avz --delete /backup/ rsync_backup@192.168.150.128::backup --password-file=/etc/rsync.password #将本地打包好的文件推到192.168.150.128指定目录下,密码采用从本地文件中读取
     cp_tar_md5sum=`ssh root@192.168.150.128 "md5sum $tar_name"` #登录服务端进行采集校验码,文件内容未改变校验码是相同的,也就确保数据未丢失,这里我已经搭建了ssh服务,所以是免密登录。
     if [[ $tar_md5sum == $cp_tar_md5sum ]]
      then
           echo "文件打包同步一切正常!" | mail -s "tile" 2748677868@qq.com
      else
            echo "文件打包同步异常!" | mail -s "tile" 2748677868@qq.com
# 简单的输出,将内容发送到我的邮箱
     fi

邮件配置参考https://www.runoob.com/w3cnote/centos-mail-command-sendmail.html

2.执行结果

在这里插入图片描述

3.客户端

在这里插入图片描述

4.服务器端

在这里插入图片描述

5.客户端定时任务

在这里插入图片描述

6。服务器端定时任务

备份保留180天通过crontab实现
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Baby-DRagon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值