美文网首页
rsync小型全网备份项目

rsync小型全网备份项目

作者: JepWei | 来源:发表于2020-04-19 03:11 被阅读0次

    1.项目需求说明

    • 某公司里有一台 web 服务器,里面的数据很重要,但是如果硬盘坏了,数据就会丢失,现在领导要求把数据做备份,这样 web 服务器数据丢失可以进行恢复

    要求如下:
    每天晚上 00 点整在 web 服务器 A 上打包备份系统配置文件、网站程序目录及访问日志并通过 rsync 命令推送到服务器 B 上备份保留
    (备份思路可以是先在本地按日期打包,然后再推到备份服务器 B 上)
    已知 3 台服务器主机名分别为 web01、backup 、nfs01,主机信息见下表:

    服务器 内网地址 外网地址 服务器名称
    NFS 存储服务器 10.0.0.31/24 172.16.1.31/24 nfs01
    rsync 备份服务器 10.0.0.41/24 172.16.1.41/24 backup
    nginx web服务器 10.0.0.7/24 172.16.1.31/24 nfs01

    2.具体备份需求

    1.所有服务器的备份目录必须都为/backup
    2.要备份的系统配置文件包括但不限于:

    a) 定时任务服务的配置文件 (/var/spool/cron/root) (适合 web 和 nfs 服
    务器)。
    b) 开机自启动的配置文件 (/etc/rc.local) (适合 web 和 nfs 服务器)。
    c) 日常脚本的目录 (/server/scripts)。
    Web 服务器站点目录假定为/var/html/www,如果没有可以先模拟创建。
    Web 服务器访问日志路径假定为/app/logs,如果没有可以先模拟创建。
    Web 服务器本地保留打包后的 7 天备份数据即可
    (本地留存不能多于 7 天,因为太多硬盘会满) 。

    3.备份服务器 backup 上,保留最近 7 天的备份数据,同时保留 6 个月内每周一的所有数据副本。
    4.备份服务器上,要按照备份数据服务器的内网 IP 为目录保存备份,备份的文件按照时间名字保存。
    5.需要确保备份的数据尽量完整正确,在备份服务器上对备份的数据是否完整进行检查。
    6.每天早晨 8:00 把备份成功或失败结果信息发给系统管理员邮箱中。
    服务器说明 备份目录 目录说明 备注

    all server /backup 备份目录 统一服务器本地备份目录,便于管理
    all server /var/spool/cron/root 定时任务服务配置 文件
    all server /etc/rc.local 开机自启动配置文件
    all server /server/scripts 日常脚本目录 统一服务器本地脚本目录,便于管理
    web server /var/html/www web 服务器站点目录 mkdir -p /var/html/www
    web server /app/logs web 服务器访问日志路径 mkdir –p /app/logs
    =======================================================

    拓扑图

    答题思路

    打包目录到backup里,定时任务推送到服务端/backup/以IP命名,并删除本地7天以上的文件,并加上md5sum校验
    服务端:结果保留7天以内的、保留6个月内每周一的,md5sum校验,结果8:00发到邮箱

    配置环境

    1.搭建服务器端 (参考rsync搭建文档)
    2.编写脚本
    web01客户端脚本
    vim /server/scripts/backup_web01.sh
        #/bin/bash
        Backup_dir="/backup"
        Ip_info=$(hostname -i)
        #create backup dir
        mkdir -p $Backup_dir/$Ip_info
        #tar backup data
        cd /
        tar zchf $Backup_dir/$Ip_info/system_backup_$(date +%F_week%w -d -1day).tar.gz ./var/spool/cron/root ./etc/rc.local ./server/scripts
        tar zchf $Backup_dir/$Ip_info/www_backup_$(date +%F_week%w -d -1day).tar.gz ./var/html/www
        tar zchf $Backup_dir/$Ip_info/www_log_backup_$(date +%F_week%w -d -1day).tar.gz ./app/logs
        #del 7 day ago data
        find $Backup_dir -type f -mtime +7|xargs rm 2>dev/null
        #create finger file
        find $Backup_dir/ -type f -mtime -1 ! -name "finger*"|xargs md5sum >$Backup_dir/$Ip_info/finger.txt
        #backup push data info
        rsync -az $Backup_dir/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
    
    nfs01客户端脚本
    vim /server/scripts/backup_web01.sh
        #/bin/bash
        Backup_dir="/backup"
        Ip_info=$(hostname -i)
        #create backup dir
        mkdir -p $Backup_dir/$Ip_info
        #tar backup data
        cd /
        tar zchf $Backup_dir/$Ip_info/system_backup_$(date +%F_week%w -d -1day).tar.gz ./var/spool/cron/root ./etc/rc.local ./server/scripts
        #del 7 day ago data
        find $Backup_dir -type f -mtime +7|xargs rm 2>dev/null
        #create finger file
        find $Backup_dir/ -type f -mtime -1 ! -name "finger*"|xargs md5sum >$Backup_dir/$Ip_info/finger.txt
        #backup push data info
        rsync -az $Backup_dir/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
    
    backup服务端脚本
    vim/server/scripts/backup_server.sh
        #/bin/bash
        # del 180 day ago date
        find /backup/ -type f -mtime +180 ! -name "*week1.tar.gz"|xargs rm 2>dev/null
    
        # check backup date
        find /backup/ -type f -name "finger.txt"|xargs md5sum -c >/tmp/check.txt
    
        # send check mail
        mail -s "验证备份信息 $(date +%F)" 942429164@qq.com </tmp/check.txt
    
    3.定时任务

    实现自动完成全网数据备份(定时任务)

    客户端定时任务:
    crontab -e
    # backup data
    0 0 * * * /bin/sh /server/scripts/backup.sh &>/dev/null

    服务端定时任务
    crontab -e
    # check backup data
    0 5 * * * /bin/sh /server/scripts/backup_server.sh &>/dev/null

    相关文章

      网友评论

          本文标题:rsync小型全网备份项目

          本文链接:https://www.haomeiwen.com/subject/kxmqbhtx.html