• 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
  • 相关阅读:
    软件开发人员 Kubernetes 入门指南|Part 2
    【JavaWeb】Servlet,Request,Responce
    R3F(React Three Fiber)经验篇
    GET 和 POST 有什么区别?
    深入理解 Django 模板系统
    java.time.TemporalAmount详解
    Linux下普通用户(非root用户)安装Java,Java程序能编译不能运行的原因
    js---封装浅拷贝和深拷贝
    干货 | 人力资源数字化的优势和应用场景展示
    大华银行与微软合作:用365 Copilot提升工作效率
  • 原文地址:https://blog.csdn.net/Wangjiachenga/article/details/125872356