• 3.rsync备份案例


    客户端需求

    1.客户端提前准备存放的备份的目录,目录规则如下:/backup/localhost_192.168.51.187_2022-07-19
    2.客户端在本地打包备份(系统配置文件、应用配置等)拷至/backup/localhost_192.168.51.187_2022-07-19
    3.客户端最后将备份的数据进行推送至备份服务器
    4.客户端服务器本地保留最近7天的数据, 避免浪费磁盘空间 find

    客户端推送时进行打一个标签。
    服务端去验证这个标签就可以。
    
    • 1
    • 2

    服务端需求

    在部署好rsync服务端的前提下
    1.服务端需要每天校验客户端推送过来的数据是否完整
    2.服务端需要每天校验的结果邮件通知给管理员
    3.服务端仅保留6个月的备份数据,其余的全部删除

    注意:所有服务器的备份目录必须都为/backup

    客户端脚本

    cat /scripts/client_push_backup.sh

    #! /bin/bash
    
    Path=/backup
    Host=$(/usr/bin/hostname)
    Addr=$(/usr/sbin/ifconfig ens192|awk 'NR==2{print $2}')
    Date=$(/usr/bin/date +%F)
    BackDir=$Path/$Host_$Addr_$Date
    
    
    #1.创建本地存储备份的目录
    mkdir -p $BackDir
    
    
    #2.拷贝需要备份的文件至该目录,通过设置md5值来核验文件的完成
    /usr/bin/tar czf $BackDir/sys.tar.gz /etc/fstab /etc/hosts && md5sum $BackDir/*.tar.gz >$BackDir/flag_$Date
    
    #3.推送数据至备份服务器
    export RSYNC_PASSWORD=123
    rsync -av $BackDir rsync_backup@192.168.51.187::backup
    
    #4.保留最近7天的数据
    /usr/bin/find $Path -maxdepth 1 -type d -mtime +7 |xargs -t rm -rf
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    服务端脚本

    邮件通知,前提需要安装mailx
    yum install mailx -y

    配置
    vim /etc/mail.rc

    #文件的最后添加如下内容
    set from=xxxxxxxx@qq.com		#发件人的邮箱
    set smtp=smtps://smtp.qq.com:465	#qq的邮箱服务器
    set smtp-auth-user=xxxxxxxx@qq.com	#发件人的账户
    set smtp-auth-password=			#发件人的(授权码)在QQ邮箱网页版里找
    set smtp-auth=login
    set ssl-verify=ignore
    set nss-config-dir=/etc/pki/nssdb/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    脚本

    #!/bin/bash
    Path=/backup
    Date=$(/usr/bin/date +%F)
     
     #1.校验客户端推送的数据,核验md5值,并把结果保存为文件 
    /usr/bin/md5sum -c $Path/*/flag_${Date} >$Path/result_${Date}
    
    #2.读取校验结果的文件,通过邮箱发送给管理人员 
    方式:mail -s "主题" 邮箱地址
    mail -s "rsync Backup ${Date}" xxxxxxxx@qq.com <$Path/result_${Date}
    
    #3.最后做数据的清理(result文件每天产生,保留最近3天即可)
    /usr/bin/find $Path -type f -name '"result_*" -mtime +3 |xargs rm -rf
    /usr/bin/find $Path -type d -maxdepth 1 -mtime +180 |xargs rm -rf
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    如果新增了一台服务器,如何快速进行备份

    假设新启动一台服务器:   通过rsync的远程传输模式将脚本传输过去再运行即可
    
    • 1
  • 相关阅读:
    微服务入门:RabbitMQ与SpringAMQP
    Kafka ProducerConfig和ConsumerConfig配置
    期货具体是如何开户的?
    【React】2、面向组件编程——组件实例的三大核心属性state、props和refs超详解
    gcc/g++使用,自动化工具(企业使用)
    计算机系统简介
    PPT基础:编辑顶点
    2022年度收单外包机构评级预公示,评为D、E级机构如何进行异议申请
    layer 弹窗,enter 、esc 按键监听确定、取消事件
    qt 文本滚动条
  • 原文地址:https://blog.csdn.net/Wangjiachenga/article/details/125872356