day34综合架构全网备份项目

  • 根据全网备份需求解决问题

  • 根据全网备份需求编写脚本

  • 根据全网备份部署进行完善项目

1.全网备份项目部署说明
第一个里程:对工作任务进行确认(笔记、录音等记录)
第二个里程:根据需求编写文档资料(部署步骤规划、人员规划、简单部署方案)
第三个里程:和领导进行开会(相关人员进行召集)
第四个里程:根据规划完成任务(阶段性汇报)
第五个里程:任务完成后进行项目文档总结(项目总结会议、人员培训)
2.全网备份需求完成阶段

1.所有服务器的备份目录必须都为/backup
    mkdir /backup -p
2.要备份的系统配置文件包括但不限于:
    a) 定时任务服务的配置文件(/var/spool/cron/root)  (适合web和nfs服务器)
    b) 开机自启动的配置文件   (/etc/rc.local)  (适合web和nfs服务器)
    c) 日常脚本的目录   (/etc/sysconfig/iptables)
    d) 防火墙iptables的配置文件   (/etc/sysconfig/iptables)
    e) 自己思考下还有什么需要备份呢?
    mkdir -p /server/scripts
    touch /etc/sysconfig/iptables
 方法一:压缩数据----绝对路径
    tar zcvhPf /backup/system_backup$(date +%F_%A).tar.gz /var/spool/cron/root /etc/rc.local /server/scripts /etc/sysconfig/iptables
 方法二:压缩数据----相对路径
    tar zcvhf /backup/system_backup$(date +%F_%A).tar.gz ./var/spool/cron/root ./etc/rc.local ./server/scripts ./etc/sysconfig/iptables
3.web服务器站点目录假定为(/var/html/www)
    mkdir -p /var/html/www/
    tar zcvPhf /backup/web_info_backup$(date +%F_%A).tar.gz /var/html/www/
4.web服务器访问日志路径假定为(/app/logs)
    mkdir -p /app/logs
    tar zcvPhf /backup/web_log_backup$(date +%F_%A).tar.gz /app/logs/
5.web服务器保留打包7天的备份数据即可(本地留存不能对于7天,因为太多硬盘会满)
    find /backup -type f -name "*.tar.gz" -mtime +7 -delete
6.备份服务器上,保留6个月之内数据,同时保留6个月之前每周一的所有数据副本
    find /backup -type f -name "*.tar.gz" -mtime +180 -delete
    两种方法:保留周一数据信息
    方法一:根据文件名称信息进行保留
        date +%F_%w
        date +%F_%a
        date +%F_%A
        find /backup -type f -name "*.tar.gz" -mtime +180 ! -iname "_monday.tar.gz" -delete
    方法二:可以将每周一数据进行单独保存
        find /backup -type f -iname "*_monday.tar.gz" | xargs mv -t /backup_monday
        find /backup -type f -name "*.tar.gz" -mtime +180 -delete
7.备份服务器上,要按照备份数据服务器的内网IP为目录保存备份,备份的文件按照时间名字保存
    方法一:在备份客户端主机上,backup目录中创建有IP地址信息子目录
        cd /
        tar zcvhf /backup/172.16.1.31/system_backup_$(date +%F_%A).tar.gz ./var/spool/cron/root ./etc/rc.local ./server/scripts ./etc/sysconfig/iptables
        rsync -avz /backup/ [email protected]::backup --password-file=/etc/rsync.password
    方法二:
        rsync -avz /backup/ [email protected]::backup/172.16.1.31/ --password-file=/etc/rsync.password
8.需要确保备份的数据尽量完整正确,在备份服务器上对备份的数据进行检查,把备份的成功及失败结果信息发给系统管理员邮箱中
    a.验证数据传输完整性
    第一个步骤:客户端生成文件指纹信息
    md5sum system_backup_2019-08-19_Monday.tar.gz
    8b771973e1a6ca8069e4240d1ee239a7 system_backup_2019-08-19_Monday.tar.gz
    生成指纹信息
    find /backup/ -type f -name "*.tar.gz" | xargs md5sum >/backup/172.16.1.31/finger.txt
    第二个步骤:服务端对文件指纹信息进行比对
    find /back/ -type f -name "finger.txt" | xargs md5sum -c >/tmp/check_data.txt

    b.对验证结果进行邮件告知运维人员
    Linux系统发送邮件原理  
    邮件服务客户端    -----> 邮件服务端  ----->QQ邮箱
    foxmail       ----->QQ企业邮箱  ---->发送邮件
    Linux postfix   ----> QQ/163邮箱  -----> 其他人发送邮件
   
    第一个里程:配置邮箱信息:163、QQ
    QQ:授权码:xxxxxxxxxx      开启QQ邮箱中IMAP/SMTP服务
    163:授权码:xxxxxxxxx    开启IMAP/SMTP服务

    第二个里程:Linux系统中进行邮件配置
    vim /etc/mail.rc
    set from=邮箱地址@qq.com     <----连接邮箱名称信息
    set smtp=smtp.qq.com       <----设置邮箱服务地址信息
    set smtp-auth-user=邮箱地址@qq.com
    set smtp-auth-password=       <-----邮箱授权码
    set smtp-auth=login          <----指定进行远程登录连接
    
    例:
    #QQ Mail config
    set [email protected]
    set smtp=smtp.qq.com
    set [email protected]
    set smtp-auth-password=xxxxxxxxx
    set smtp-auth=login     
    #163 Mail config
    set [email protected]
    set smtp=smtp.163.com
    set [email protected]
    set smtp-auth-password=xxxxxxxxx
    set smtp-auth=login

    第三个里程:重启系统邮件服务
    systemctl restart postfix.service
    
    第四个里程:进行邮件发送测试
    mail -s "backup_data_notify" [email protected] 

3.全网备份脚本编写过程
nsf01:
备份服务客户端脚本:

    #!/bin/bash
    Backup_Dir="/backup/"
    Backup_IP="$(hostname -i)"
    # 00. create dir info
    mkdir $Backup_Dir/$Backup_IP -p
    mkdir -p /server/scripts
    touch /etc/sysconfig/iptables

    # 01. compress data
    tar zchPf $Backup_Dir/$Backup_IP/system_backup$(date +%F_%A).tar.gz /var/spool/cron/root /etc/rc.local /server/scripts /etc/sysconfig/iptables
    
    # 02. create finger file
    find $Backup_Dir/ -type f -name "*.tar.gz" | xargs md5sum >$Backup_Dir/$Backup_IP/finger.txt    

    # 03. push data info
    rsync -az $Backup_Dir/ [email protected]::backup --password-file=/etc/rsync.password 

    # 04. delete 7 day ago
    find $Backup_Dir/ -type f -name "*.tar.gz" -mtime +7 -delete  

备份服务服务端脚本:

#!/bin/bash

#01. check data info
find /back/ -type f -name "finger.txt" | xargs md5sum -c >/tmp/check_data.txt

#02. sent notify mail
mail -s "backup_data_notify" [email protected] 

4.编写定时任务注意事项
客户端时间晚于客户端备份时间

你可能感兴趣的:(day34综合架构全网备份项目)