1. 项目背景与需求分析
在企业IT基础设施中,数据备份是最基础也最重要的运维保障措施之一。这个项目源于一个典型的企业场景:某公司Web服务器承载着核心业务数据,但存在单点故障风险。一旦硬盘损坏,所有业务数据将永久丢失。为此,我们需要构建一个自动化备份系统,确保数据安全。
1.1 核心需求拆解
整个备份系统需要满足以下关键需求:
- 定时备份:每天00:00自动打包Web服务器的关键数据
- 异地存储:通过rsync将备份数据推送到专用备份服务器
- 存储管理:本地保留7天备份,备份服务器保留更长时间的历史数据
- 完整性校验:对备份数据进行MD5校验,确保传输过程无损坏
- 告警通知:通过邮件发送备份结果和异常告警
1.2 技术选型考量
选择rsync作为核心传输工具主要基于以下考虑:
- 增量传输:仅传输变化部分,节省带宽
- 断点续传:网络中断后可恢复传输
- 权限保持:可保留文件原始属性
- 加密支持:通过SSH或自定义密码保护传输
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计
2.1 服务器角色分配
系统由三台服务器组成集群:
| 主机名 | IP地址 | 主要职责 | 关键软件 |
|---|---|---|---|
| web01 | 192.168.88.200 | 运行Web服务,生成业务数据 | Nginx, rsync |
| nfs01 | 192.168.88.201 | 提供共享存储服务 | NFS, rsync |
| backup | 192.168.88.202 | 集中存储备份数据 | rsync, mailx |
2.2 备份目录结构设计
所有服务器使用统一的备份目录结构:
code复制/backup/
└── [服务器IP]/
├── YYYY-MM-DD_week0W.tar.gz # 每日备份包
├── YYYY-MM-DD.flag # MD5校验文件
└── ... # 其他备份文件
这种设计具有以下优势:
- 按IP区分不同服务器的备份
- 文件名包含日期和星期信息,便于管理
- 校验文件与备份文件一一对应
3. 详细实施步骤
3.1 基础环境准备
3.1.1 系统初始化配置
所有服务器需要执行以下基础配置:
bash复制# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 禁用SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
# 设置主机名(以web01为例)
hostnamectl set-hostname web01
# 配置静态IP(以web01为例)
cat > /etc/sysconfig/network-scripts/ifcfg-ens33 <<EOF
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.88.200
NETMASK=255.255.255.0
GATEWAY=192.168.88.2
DNS1=114.114.114.114
EOF
systemctl restart network
3.1.2 软件包安装
各服务器需要安装的软件包:
bash复制# 公共软件包
yum install -y vim tree tar net-tools rsync
# Web服务器专用
yum install -y nginx
# NFS服务器专用
yum install -y nfs-utils rpcbind
# 备份服务器专用
yum install -y mailx
