备份案例

备份案例

  1. 准备:

    • 三台服务器,一台做服务(backup)另外两台(web01,nfs01)作为客户机.
  2. 客户端要求

    1.客户端提前准备存放的备份的目录,目录规则如下:/backup/nfs_172.16.1.31_2018-09-02
    2.客户端在本地打包备份(系统配置文件、应用配置等)拷贝至/backup/nfs_172.16.1.31_2018-09-02
    3.客户端最后将备份的数据进行推送至备份服务器
    4.客户端服务器本地保留最近7天的数据, 避免浪费磁盘空间
    5.客户端每天凌晨1点定时执行该脚本

  3. 根据要求客户端准备

    • 1.准备一个目录backup,目录下面文件格式要带上主机名,ip地址,时间

      mkdir -p backup

      echo “$(hostname)” #打印主机名称

    ifconfig eth1 |awk ‘/inet / {print $2}’#取ip地址

    echo “$(ifconfig eth1 |awk ‘/inet / {print $2}’)” #打印ip地址

    echo “$(date +%F)” #打印时间

    • 组合起来:mkdir -p “/backup/KaTeX parse error: Expected group after '_' at position 11: (hostname)_̲(ifconfig eth1 |awk '/inet/ {print KaTeX parse error: Expected 'EOF', got '}' at position 2: 2}̲'|head -1)_(date +%F)” #加-p在/backup目录下创建

    • 2.将文件备份到该目录中

      cp -r /etc/rc.local /etc/fstab /etc/hosts /上面创建的目录

    • 3.使用rsync命令进行运输

      rsync -avz /backup/ rsync_backup@172.16.41::backup

    • 4.保留最近七天

      find /backup -type d -mtime +7 |xargx rm-rf

    • 5.编写定时任务

    #backup
    00 01 * * */usr/bin/sh /scripts/clinet_push_data.sh &>/dev/null
    
    
    • 编写脚本(将手动执行的12345写成一个脚本)

      创建一个目录:mkdir /scripts
      编写脚本:vim /scripts/clinet_push_daata.sh
      #!/usr/bin/bash
      #客户端推送备份的数据至备份服务器
      #0.将目录需要用的主机名,ip,时间,定义为变量,把开头设置为大写避免有冲突.写上PATH的路径
      export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
      Host=$(hostname)
      Ip=$(ifconfig eth1 |awk '/inet / {print $2}')
      Sj=$(date +%F)
      Bfck=/bacup
      Dirname="${Host}_${Ip}_${Sj}"
      #1.我们要准备一个目录,使用我们上面设置的变量备份目录
      mkdir -p "$Bfck/$Dirname"
      #2.将文件复制到该目录
      cp -r /etc/rc.local /etc/fstab /etc/hosts $Bfck/$Dirname
      #3.使用rsync命令进行运输,可以给密码设置个变量,不用输入密码
      export RSYNC_PASSWORD=123456
      rsync -avz $Bfck/ rsync_backup@172.16.1.41::backup
      #4.保留本地七天的数据
      find $bfck -type d -mtime +7 |xargs rm -rf
      
  4. 服务端要求

    1. 1.服务端部署rsync,用于接收客户端推送过来的备份数据
      已完成(如果没有完成,请自行操作)

      2.服务端需要每天校验客户端推送过来的数据是否完整

      客户端压缩要求:

      • 我们如果要将备份的数据加上校验吗就需要用:md5sum对文件进行标识;-c用来验证.

      • 对文件进行压缩打包:

        tar czf $Bfck/$Dirname/syc.tar.gz etc/rc.local etc/fstab     #用czf格式进行压缩;压缩到哪里交什么名字;压缩什么
        
      • 对压缩包标识:

        md5sum $Bfck/Dirname/*.tar.gz > $Bdck/Dirname/yanzheng_wenjian_$Sj         #压缩标识后将标识信息重定向到yanzheng_wenjian_$Sj
        

      服务端找到当天的验证文件,效验数据是否完整,并将结果存在某个文件(result_$Sj)

      find /backup/ -type -f -name "yanzhegn_$Sj" |xargs md5-c >/backup/result_$Sj          
      

      3.服务端需要每天校验的结果通知给管理员

      mail -s "Rsync Backup $Time" #收件人邮箱 <$Path/result_$Time             #-s指定邮件主题(名称);将验证文件输入到里面
      

      4.服务端仅保留6个月的备份数据,其余的全部删除

      find $Path  -type d -mtime +180  | xargs rm -rf
      
    2. 编写脚本文件

      vim /scripts/check_clinet_data.sh
      #!/usr/bin/bash
      #检查客户端推送的数据
      #0.将备份用的目录设置为变量,更改备份位置方便,时间也设置变量
      export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
      Sj=$(date +%F)
      Bdck=/backup
      #1找到当天的check_flag文件,校验数据是否是完整的,并且将校验结果存储至某个文件中
      find $Bdck/ -type f -name "yanzhegn_wenjian_$Sj" |xargs md5sum -c > $Bdck/result_$j
      #2.将效验的结果通知给管理人员(收件人)
      mail -s "Rsync Backup $Time" 1350638104@qq.com <$Path/result_$Time
      #3.服务端紧保留六个月的备份数据,其余全部删除
      find $Bdck -type d -mtime +180 |xargs rm -rf
      
    3. 配置发件人邮箱账号密码:vim /etc/mail

      set from=1350638104@qq.com
      set smtp=smtps://smtp.qq.com:465
      set smtp-auth-user=1350638104@qq.com
      set smtp-auth-password=wubifsbdjkelidha #qq邮箱授权码
      set smtp-auth=login
      set ssl-verify=ignore
      set nss-config-dir=/etc/pki/nssdb/
      
      
    4. 添加定时任务

      • sh命令路径+脚本路径

        1. which sh ##/usr/bin/sh

        2. /usr/bin/sh /scripts/check_clinet_data.sh

        3. 将输出打到空:

          [root@backup opt]# crontab -l
          
          #将验证信息发送到qq邮箱
          00 01 * * * /usr/bin/sh /scripts/check_clinet_data.sh &>/dev/null
          
          
    5. 然后快速备份一台新的机器?

      直接备份脚本文件到本机跟下,然后添加定时任务

      rsync -avz 172.16.1.31:/scripts /

      [root@nfs ~]# crontab -e
      * * * * * /usr/bin/sh /scripts/clinet_push_data.sh &>/dev/null
       
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值