• 运维SRE-11 备份服务及备份项目


    1.第一个服务-rsync备份服务-守护进程模式

    1.1概述

    • 守护进程:持续运行的进程,也可以叫作服务
    • 服务一般分为:服务端与客户端
    • 服务端:linux服务器上运行的各种服务软件
    • 客户端:linux中的客户端可能是一个命令,也可能是app,小程序等

    1.2流程与原理

    在这里插入图片描述
    在这里插入图片描述

    1.3 rsync守护进程模式快速实战指南

    服务端:
    
    客户端:
    
    • 1
    • 2
    • 3

    1)rsync服务端(backup)
    a)rsync服务端配置文件

    cat /etc/rsyncd.conf 
    ##################################
    #rsyncd.conf start##
    #rsyncd 20221111
    fake super = yes
    uid = rsync
    gid = rsync
    use chroot = no
    max connections = 200
    timeout = 300
    pid file = /var/run/rsyncd.pid
    lock file = /var/run/rsync.lock
    log file = /var/log/rsyncd.log
    ignore errors
    read only = false
    list = false
    #hosts allow = 172.16.1.0/24
    #hosts deny = 0.0.0.0/32
    auth users = rsync_backup
    secrets file = /etc/rsync.password
    [data]
    comment = "backup dir by oldboy lidao996"
    path = /data
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    b)创建用户(添加与登录shell无关的用户)

    useradd -s /sbin/nologin -M rsync
    [root@backup /etc]# id rsync
    uid=1000(rsync) gid=1000(rsync) 组=1000(rsync)
    
    • 1
    • 2
    • 3

    c)创建密码文件

    1.创建密码文件
    echo 'rsync_backup:1' > /etc/rsync.password
    2.修改权限
    chmod 600 /etc/rsync.password
    
    • 1
    • 2
    • 3
    • 4

    d)创建共享目录

    mkdir -p /data
    chown rsync.rsync /data/
    
    • 1
    • 2

    e)重启服务

    1.检查rsyncd服务状态
    systemctl status rsyncd
    2.启动rsyncd服务
    systemctl restart rsyncd
    3.再次检查状态
    systemctl status rsyncd
    4. 开机自启动
    systemctl enable rsyncd
    5. 检查进程,端口
    ps -ef |grep rsync
    ss -tnlp|grep rsync
    [root@backup /]# ss -ntlp |grep rsync
    LISTEN     0      5            *:873                      *:*                   users:(("rsync",pid=5599,fd=3))
    LISTEN     0      5         [::]:873                   [::]:*                   users:(("rsync",pid=5599,fd=5))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    f)测试服务端
    rsync -avz 文件/目录 验证用户@ip::模块名字

    #data->/etc/rsyncd.conf中的[data]
    rsync -avz /etc/hostname rsync_backup@10.0.0.41::data
    [root@backup /]# ll /data/
    总用量 4
    -rw-r--r-- 1 rsync rsync 7 9月  27 17:14 hostname
    
    • 1
    • 2
    • 3
    • 4
    • 5

    g)排错

    看命令行错误提示,大概定位问题。
    看日志,看日志,看日志。 /var/log/rsyncd.log ,/var/log/messages
    看关键词 error或err或 failed
    排查流程与搭建流程一致。
    
    • 1
    • 2
    • 3
    • 4

    2)rsync客户端(nfs,web01)
    其实就是把rsync的命令换到别的机器执行

    1.创建客户端:所用密码文件(仅存放密码)
    echo '1' >/etc/rsync.pass
    chmod 600 /etc/rsync.pass
    2.在客户端测试连接rsync服务端
    rsync -avz /etc/hosts rsync_backup@10.0.0.41::data --password-file=/etc/rsync.pass
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3)小结
    在这里插入图片描述

    1.4 rsync传输全流程详解

    在这里插入图片描述

    1.5 rsync服务总结

    • 基础特点:增量同步
    • rsync应用场景
    • rsync远程模式(用法,选项)
    • rsync守护进程模式,必会
    • 排错

    2 发送邮件方法

    2.1概述

    通过邮件,微信,钉钉,短信,电话方式进行通知

    mailx -s 'hb' 1542293291@qq.com 
    • 1

    在这里插入图片描述

    内容比较捡漏需要优化

    2.1 配置收件人

    邮箱开启smtp功能
    邮箱中获取授权码(密码)
    
    • 1
    • 2

    在这里插入图片描述

    在这里插入图片描述

    vim /etc/mail.rc #写到最后
    cat >>/etc/mail.rc<
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    3.项目案例:全网备份案例

    在这里插入图片描述

    3.1 项目背景:

    刚刚入职,发现网站数据丢失,还无法恢复.没有备份.
    决定实施备份项目,备份好网站架构的数据,配置文件,脚本....
    
    • 1
    • 2

    3.2 项目步骤

    规划下需要备份哪些内容.精确文件,目录.
    待备份的内容:
    	用户数据(数据库,存储).
    	各种配置文件 (/etc/,某些软件的配置.)
    	脚本.
    	网站代码....
    	略.
    如何备份:
    	书写备份脚本:
    		备份/etc/目录,备份到/backup/ip/ tar
    		备份完成,把备份推送到rsync服务端. rsync
    		清除旧的备份
    	定时任务定时运行备份.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    1)服务端配置

    #/etc/rsyncd.conf
    [backup]
    comment = "backup dir by hb"
    path = /backup
    
    systemctl restart rsyncd 
    mkdir -p /backup 
    chown rsync.rsync   /backup/
    测试服务端是否可用(传输文件即可).
    
    #nfs01:
    rsync -avz /etc/hosts rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.pass
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    1. 客户端配置(脚本,定时任务)
      a)脚本
    cat back-etc.sh
    #!/bin/bash
    #author:hb
    #desc:备份/etc目录
    
    ip_rsync_server=172.16.1.41
    ip=`hostname -I |awk '{print $2}'`
    time=`date +%F`
    
    #1.备份目录
    mkdir -p /backup/$ip
    tar zcf /backup/$ip/etc.$time.tar.gz /etc/
    
    #2.rsync传输备份
    rsync -a /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.pass
    
    #3.删除旧的备份
    #find /backup -type -f -mtime +7 -name "*.tar.gz" |xargs rm -f
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    b)定时任务

    * * * * * sh /server/scripts/back-etc.sh &>/dev/null
    
    • 1

    c)检查服务端的备份是否存在

    watch tree /backup
    
    • 1

    3)服务端

    cat check_backup.sh 
    #!/bin/bash
    #author:hb
    #desc:检查备份结果,清理旧的备份,发送邮件
    
    #发送邮件
    tree /backup/ |mailx -s '每日备份结果' 1542293291@qq.com
    
    #清理旧的备份
    find /backup -type f -mtime +365 -name "*.tar.gz" |xargs rm -f
    
    #加入crontab
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    3.3项目总结

    技术点:rsync守护进程模式,定时任务,脚本(打包备份,变量.),脚本执行检查.

    服务端准备好,rsync守护进程模式: backup模块
    客户端: 书写脚本,调试脚本
    客户端: 书写定时任务执行脚本,
    服务端: 书写备份检查脚本(发邮件,删除旧的备份命令.)
    服务端,客户端调整定时任务: 
    	客户端: 每天晚上12
    	服务端: 每天晚上01点
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    YOLOv8/YOLOv7/YOLOv5/YOLOv4/Faster-rcnn系列算法改进【NO.77】引入百度最新提出RT-DETR模型中AIFI模块
    Bean 作用域和生命周期
    CNC 3D浮雕 Aspire 11.55 Crack
    赚钱
    深度学习:基于长短时记忆网络LSTM实现情感分析
    通过pipeline配置sonar自动化实现过程解析
    “灵活性之光:掌握策略模式塑造可扩展的代码未来“
    web前端设计与开发期末作品_期末大作业【使用HTML制作汽车首页】
    net core天马行空系列-可用于依赖注入的,数据库表和c#实体类互相转换的接口实现
    2-5.基金的信息披露
  • 原文地址:https://blog.csdn.net/Binbinhb/article/details/136238447