综合项目记录:自动化备份全网服务器数据平台

发布于:2025-08-10 ⋅ 阅读:(19) ⋅ 点赞:(0)

一、项目背景与需求

1.1项目概述

  • 该项目共分为2个子项目,由环境搭建和实施备份两部分组成

1.2项目总体需求

  • 企业内部有一台web服务器,内部数据很重要,现需要为该web服务器数据做备份,这样在数据丢失时可以恢复。
  • 要求如下:
    • 每天00点整在Web服务器上按日期打包备份系统配置文件、网站程序目录及访问日志文件

    • 通过rsync命令推送到备份服务器上保存

    • 备份服务器定时清除旧记录

    • 搭建邮件告警平台 

1.3项目备份需求

  • 所有服务器的备份目录必须都为/backup。

  • 要备份的系统配置文件包括但不限于:

    • 定时任务服务的配置文件(/var/spool/cron/root)。

    • 开机自启动的配置文件(/etc/rc.local)。

    • 日常脚本的目录 (/server/scripts)

  • Web服务器要求
    • Web站点目录为/var/html/www
    • Web服务器访问日志路径假定为/app/logs
    • Web服务器本地保留打包后的7天备份数据
  • 备份服务器要求
    • 保留最近7天所有备份数据,保留6个月内每周一的所有数据副本。

    • 要按照备份数据服务器内网IP为目录名称,备份的文件按照时间、名称为文件名称。

    • 需要确保备份的数据尽量完整准确,在备份服务器上对备份的数据是否完整进行检查。

    • 备份服务器每天早晨8:00把备份成功或失败结果信息发送到系统管理员邮箱里。

二、项目环境

2.1系统环境

使用三台CentOS7系统的服务器

3台服务器主机名分别为web01、backup、nfs01

使用静态ip,将三台主机的ip分别设置为192.168.205.181、182、183

2.2项目拓扑结构

三、需求分析

3.1项目环境搭建需求分析

首先需要关闭三台服务器的防火墙和selinux,确保网络可以正常连接

3.2主机配置需求分析

3.2.1Web服务器搭建部署

(1)验证rsync服务能否推送成功

(2)开发脚本实现打包备份、推送、校验、删除

(3)配置定时任务每天0点定时推送

3.2.2nfs服务器搭建部署

(1)验证rsync服务能否推送成功

(2)开发脚本实现打包备份、推送、校验、删除

(3)配置定时任务每天0点定时推送

3.2.3备份服务器搭建部署

(1)rsync服务器搭建部署

(2)开发脚本实现校验、删除、报警

(3)配置实时任务每天6点实时执行

(4)配置告警邮件发送平台

需求分析结束后,确定好操作步骤,接下来进入服务配置阶段

四、环境搭建

4.1web服务器

(1)修改主机名

(2)关闭防火墙和selinux

修改完selinux的配置文件后需要重启才能生效!!!

(3)安装好CentOS7.9系统后,建立本地yum源

首先备份原本的yum源,将原先的yum源目录加上back后缀,然后再新建一个yum源目录

在新建的目录下使用xftp将需要替换的yum源仓库拉入

拉入后重新读取yum源仓库缓存。

建立好缓存后yum源即成功替换

(4)设置静态ip

设置好后保存退出并且重新加载和激活网卡

(5)安装所有需要使用的软件

(6)下载yum仓库扩展并且下载nginx

(7)准备网站配置文件并且配置nginx配置文件实现网站服务

先新建网站文件存储目录

然后将网站文件上传至该网站

然后修改nginx的配置文件

修改好后启用nginx服务

然后进行检测,可见没有问题,至此web01服务器环境搭建完成。

4.2nfs服务器

前部分准备阶段与web服务器一致

(1)修改主机名

(2)关闭防火墙和selinux,并且重启

(3)建立本地yum源

上传yum源仓库

重新建立yum缓存

(4)设置静态ip

修改完成后重载和激活

(5)安装基础的软件

(6)下载必要的nfs传输的软件

(7)配置nfs传输目录和配置文件

新建一个目录专用于nfs共享文件

在该目录中创建一个readme文件

为该目录和其内所有目录和文件赋权,确保共享的文件可以正常打开

配置nfs的配置文件,添加要共享的目录和目标的网段

然后先启动rpcbind服务,后启动nfs-server服务,确保nfs共享的端口成功注册在rpcbind中

4.3web服务器验证和挂载nfs共享的文件

(1)验证nfs文件共享,可见没有问题

(2)挂载该共享目录到本地

新建一个目录用于挂载共享文件

将共享目录挂载到本地并且设置开机挂载

4.4backup服务器

前面的准备工作依然与前面一致

(1)设置主机名为backup

(2)关闭防火墙和selinux并且重启

(3)建立本地yum源

将yum仓库上传至该目录并且重新加载缓存

(4)设置静态ip并且重载和激活网卡

(5)修改rsync配置文件

(6)根据配置文件设置rsync

创建rsync账户及共享目录并修改目录属主为rsync

启动服务并设置开机自启

创建rsync虚拟账户名和密码,并赋予密码文件600权限

至此三台服务器的环境搭建全部完成。

五、配置备份脚本

5.1web服务器

编写备份web服务器的脚本

总共有一下几个内容需要备份:nginx的日志文件、网页的主数据、用于备份的脚本

开始编写备份脚本和创建备份目录

创建认证的文件密码并且设置权限为600

文件中只写密码

编写完成后进行测试

可见备份过程没有报错,接下来去检测备份结果

可见需要备份的文件已经全部存入备份服务器的备份目录中,web服务器备份脚本配置完毕。

5.2nfs服务器

编写nfs服务器的本地备份脚本

该服务器需要备份的文件有共享目录数据、日志文件、挂载信息

开始编写脚本

创建认证的文件密码并且设置权限为600

编写完成后进行测试

可见备份过程没有报错,接下来查看备份结果

可见备份目录中有了两台主机的备份文件,备份没有问题

六、配置定时任务

6.1web服务器

web01服务器编辑定时任务,实现每天00:00定时备份本地数据,并推送到Rsync服务器上

添加自动备份定时任务

可见任务已经成功添加

6.2nfs服务器

nfs服务器与web服务器一致,每天00:00定时备份本地数据,并推送到rsync服务器上

添加自动备份定时任务

可见任务已经成功添加

6.3backup服务器

backup服务器需要编写脚本,实现删除180天前的备份数据,但是保留每周一的备份数据

脚本编写好后配置定时任务,实现backup服务器删除180天的备份数据

可见任务已经成功添加

七、实现验证数据完整性和邮件告警

7.1验证数据完整性

backup服务端针对客户端备份时的md5指纹数据,利用MD5命令进行验证,完成数据传输过程完整性验证。

编写验证和邮件发送脚本

7.2配置邮件告警

首先需要安装邮件服务

配置qq邮箱ssl证书

配置邮件服务

在该文件末尾添加以下内容

最后测试邮件告警功能是否生效

可见测试邮件没有问题,可以正常收到

然后测试验证完整性的脚本

可见脚本编写没有问题,告警邮件可以收到

然后修改定时任务的时间间隔测试各个服务器的定时任务是否正常执行

修改为每分钟执行一次,并且将backup服务器的已经存在的备份文件全部删除,然后等待一分钟查看是否有新的备份文件自动备份完成。

一分钟后查看备份目录

可见备份正常,然后运行完整性检验脚本,可以正常收到邮件并且可见备份文件全部完整。

最后将定时任务修改为每天0点

至此该项目圆满完成。


网站公告

今日签到

点亮在社区的每一天
去签到