当前位置: 首页 > news >正文

自动化备份全网服务器数据平台项目

【项目需求】

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

要求如下:

(1)每天00点整在Web服务器上按日期打包备份系统配置文件、网站程序目录及访问日志文件

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

(3)备份服务器定时清除旧记录

(4)搭建邮件告警平台

备份内容:

(1)定时任务服务配置文件:/var/spool/cron/root

(2)开机自启动配置文件:/etc/rc.local

(3)日常脚本目录:/server/scripts

(4)web服务网站和目录:/www/

(5)web服务器访问日志路径:

【项目环境】

1.项目拓扑结构

2.软硬件环境清单

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

【环境搭建】

(1)Web服务器搭建部署

  • 验证Rsync服务能否推送成功

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

  • 配置定时任务每天0点定时推送(0时是时间的一个分割点)

(2)NFS服务器搭建部署

  • 验证Rsync服务能否推送成功。

  • 开发脚本实现打包备份、推送、校验、删除。

  • 配置定时任务每天0点定时推送(0时是时间的一个分隔点)。

  • 配置脚本和web服务器类似,过程略。

(3)搭建备份服务器

  • rsync服务器搭建部署。

  • 开发脚本实现校验、删除、报警。

  • 配置实时任务每天6点实时执行。

  • 配置告警邮件发送平台

具体流程如下:

1.创建虚拟机

2.三台虚拟机同时连接xshell

3.环境搭建

3.1web01服务器环境搭建

(1)替换yum源

(2)修改主机名

(3)关闭防火墙

(4)关闭selinx

(5)设置静态ip

(6)安装所需软件

3.2nfs01服务器环境搭建

步骤同上述web01服务器环境搭建相同

安装所需软件

3.3backup服务器环境搭建

步骤同上述web01服务器环境搭建相同

安装所需软件

4.web01端部署网站

4.1下载EPEL仓库配置文件

4.2安装nginx

4.3创建存放网站目录/www,通过xftp将网站文件移至linux/www下

4.4编辑nginx配置文件

4.5重启nginx服务

4.6测试

5.nfs01端部署共享存储

5.1安装nfs-utils、rpcbind

5.2创建共享目录、修改目录权限为777

5.3编辑nfs配置文件

5.4启动rpcbind、nfs服务

5.5测试-定位web01客户端-查看nfs01服务端共享的目录

5.6创建挂载目录/web_nfs

5.7将nfs01端共享目录挂载到客户端/web_nfs

5.8设置永久挂载

6.定位backup端

6.1编辑rsync配置文件

 6.2根据配置文件设置

            6.2.1创建rsync账户

            6.2.2创建备份目录/backup并设置目录属主为rsync

            6.2.3启动rsync服务并设置开机启动

            6.2.4查看rsync进程

            6.2.5创建rsync账户的密码文件并赋予权限为600

(服务端密码验证文件格式为账户:账户密码)

7.配置备份脚本

7.1配置web01客户端本地备份脚本

(1)创建备份目录及备份web01服务器的脚本

(2)编辑备份脚本

(3)客户端创建认证的密码文件并修改权限为600

(4)执行脚本

7.2配置nfs01端本地备份脚本

(1)创建备份目录及备份nfs01服务器的脚本

(2)客户端创建认证的密码文件并修改权限为600

(3)执行脚本

8.配置定时任务

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

8.1web01端编辑定时任务

8.2nfs01、backup端编辑定时任务

8.3backup服务端编写脚本,实现删除180天前的所有备份数据,但保存每周一的

9.数据传输完整性验证与监控告警

9.1验证数据完整性

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

9.2配置邮件告警

(1)安装邮件服务

(2)配置qq邮箱ssl证书

(3)设置邮件服务

(4)测试邮件服务

http://www.dtcms.com/a/325291.html

相关文章:

  • 掘金数据富矿,永洪科技为山东黄金定制“数智掘金”实战营
  • k8s 部署mysql主从集群
  • kafka 中的Broker 是什么?它在集群中起什么作用?
  • 类银河恶魔城 P20-1 Slime enemy
  • Flutter学习笔记(六)---状态管理、事件、路由、动画
  • 达梦自定义存储过程实现获取表完整的ddl语句
  • Python FastAPI + React + Nginx 阿里云WINDOWS ECS部署实战:从标准流程到踩坑解决全记录
  • 爬虫与数据分析结和
  • NEON性能优化总结
  • Spring MVC 注解参数接收详解:@RequestBody、@PathVariable 等区别与使用场景
  • EXISTS 替代 IN 的性能优化技巧
  • 大数据量下分页查询性能优化实践(SpringBoot+MyBatis-Plus)
  • 基于Spring Data Elasticsearch的分布式全文检索与集群性能优化实践指南
  • Rust:anyhow 高效错误处理库核心用法详解
  • Rust 实战五 | 配置 Tauri 应用图标及解决 exe 被识别为威胁的问题
  • 新人该如何将不同的HTML、CSS、Javascript等文件转化为Vue3文件架构
  • 零基础学习jQuery第三天
  • 探秘华为:松山湖的科技与浪漫之旅
  • SQL 基础查询语句详解
  • DDIA第五章:分布式数据复制中的一致性与冲突处理
  • 基于STM32设计的矿山环境监测系统(NBIOT)_262
  • (25.08)Ubuntu20.04复现KISS-ICP
  • 【TensorRT踩坑记录】安装与使用
  • 软考 系统架构设计师系列知识点之杂项集萃(121)
  • 数据变而界面僵:Vue/React/Angular渲染失效解析与修复指南
  • leetcode-hot-100 (图论)
  • 算法训练营DAY57 第十一章:图论part07
  • 基于Qt Property Browser的通用属性系统:Any类与向量/颜色属性的完美结合
  • CVE-2019-0708复刻
  • react+vite-plugin-react-router-generator自动化生成路由