news 2026/2/27 22:47:53

现对约 100 台 CentOS 7.9 系统的 LAMP 和 LNMP 架构服务器进行全网备份【20251216】001篇

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
现对约 100 台 CentOS 7.9 系统的 LAMP 和 LNMP 架构服务器进行全网备份【20251216】001篇

文章目录

    • 🧩 一、总体架构设计
      • 目标
      • 技术选型
    • 🏗️ 二、环境规划
      • 1. 网络拓扑建议
      • 2. IP 规划示例
      • 3. 文件路径规划(客户端)
    • ⚙️ 三、部署实施
      • 第一步:搭建中央备份服务器(Backup Server)
        • 1. 安装 rsync
        • 2. 创建 rsync 用户(非 shell 登录)
        • 3. 编写配置文件 `/etc/rsyncd.conf`
        • 4. 创建认证密码文件(每个 client 一个)
        • 5. 创建存储目录并授权
        • 6. 使用 systemd 启动 rsync 服务
        • 7. 验证服务运行
      • 第二步:配置客户端(Client Node)
        • 1. 安装 rsync
        • 2. 创建备份脚本 `/opt/scripts/backup_rsync.sh`
        • 3. 创建密码文件
        • 4. 加入定时任务(crontab)
        • 5. 设置执行权限
    • ✅ 四、测试与验证
      • 1. 单机测试(手动触发)
      • 2. 服务端验证接收
      • 3. 连通性测试
      • 4. 模拟恢复测试(必须做!)
    • 📦 五、交付文档
      • 1. 交付清单
      • 2. 示例:备份保留策略
    • 🛠️ 六、后期运维与优化
      • 1. 自动化批量管理(必选)
      • 2. 增加监控告警
      • 3. 性能优化建议
      • 4. 安全加固
      • 5. 扩展方向
    • 🧾 总结
    • 📎 附录:常用命令速查

基于rsync配置后台服务,实现对约 100 台 CentOS 7.9 系统的LAMPLNMP架构服务器进行全网备份,是一项典型的运维自动化任务。以下从环境规划、部署实施、测试验证、交付文档、日常运维五个阶段,提供一套完整、可落地的技术方案。

🧩 一、总体架构设计

目标

  • 对 100 台左右 LAMP/LNMP 服务器的关键数据进行定时增量备份。
  • 使用rsync daemon模式(非 SSH),提升效率和安全性。
  • 支持断点续传、压缩传输、权限保留。
  • 备份中心集中存储 + 增量日志审计 + 异常告警。

技术选型

组件说明
rsync后台守护模式同步文件
xinetd / systemd托管 rsync 服务(推荐 systemd)
inotify-tools (可选)实时触发同步(按需启用)
cron定时执行备份脚本
NFS/SAN/本地磁盘备份存储后端
Shell 脚本 + 日志系统自动化调度与监控
Prometheus + Alertmanager / Zabbix(后期)监控备份状态

🏗️ 二、环境规划

1. 网络拓扑建议

[Client Nodes: 100× LAMP/LNMP] ↓ rsync over TCP (port 873) [Backup Server: 1× Central Rsync Server] ↓ [Storage Backend: RAID/NFS/Ceph]

建议:备份服务器部署在内网 VLAN 中,禁止公网访问。

2. IP 规划示例

类型示例 IP 段说明
Client Nodes192.168.10.10 ~ 192.168.10.110Web 服务器集群
Backup Server192.168.10.200主控备份节点
存储容量预估≥5TB(初始)根据每日增量估算

💡 假设每台平均 20GB 数据,保留 7 天全量 + 增量 ≈ 2TB;冗余预留至 5TB+

3. 文件路径规划(客户端)

应用类型备份目录
LAMP/var/www/html,/etc/httpd,/var/lib/mysql(若本地数据库)
LNMP/usr/share/nginx/html,/etc/nginx,/var/lib/mysql,/root/.my.cnf
共同项/etc/passwd,/etc/group,/etc/shadow,/root/.ssh/authorized_keys,/etc/crontab,/var/spool/cron/*

✅ 注意:数据库建议先 mysqldump 再备份.sql文件,避免直接拷贝 ibdata 导致不一致!


⚙️ 三、部署实施

第一步:搭建中央备份服务器(Backup Server)

1. 安装 rsync
yuminstall-yrsyncxinetd

CentOS 7.9 默认已安装 rsync,检查:

rpm-qa|greprsyncwhichrsync
2. 创建 rsync 用户(非 shell 登录)
useraddrsync-s /sbin/nologin -M
3. 编写配置文件/etc/rsyncd.conf
uid = rsync gid = rsync use chroot = no max connections = 100 log file = /var/log/rsync.log pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock # 模块定义 —— 按主机命名空间隔离 [web_backup_192.168.10.10] path = /backup/web/192.168.10.10/ comment = Backup for web server 192.168.10.10 read only = no list = yes auth users = backup_user_10 secrets file = /etc/rsync_192.168.10.10.passwd hosts allow = 192.168.10.10 [web_backup_192.168.10.11] path = /backup/web/192.168.10.11/ comment = Backup for web server 192.168.10.11 read only = no list = yes auth users = backup_user_11 secrets file = /etc/rsync_192.168.10.11.passwd hosts allow = 192.168.10.11 # ...其他机器依次类推(可用脚本生成)

🔒 提示:实际中可通过模板 + Ansible 自动生成所有模块。

4. 创建认证密码文件(每个 client 一个)
# 示例:为 192.168.10.10 创建echo"backup_user_10:MyStr0ngP@ssw0rd1">/etc/rsync_192.168.10.10.passwdchmod600/etc/rsync_192.168.10.10.passwdchownrsync:rsync /etc/rsync_192.168.10.10.passwd
5. 创建存储目录并授权
mkdir-p /backup/web/192.168.10.{10..110}chown-R rsync:rsync /backup/web
6. 使用 systemd 启动 rsync 服务

创建/etc/systemd/system/rsyncd.service

[Unit] Description=Fast remote file copy program daemon After=network.target [Service] User=root ExecStart=/usr/bin/rsync --daemon --config=/etc/rsyncd.conf --no-detach Restart=always [Install] WantedBy=multi-user.target

启动服务:

systemctl daemon-reload systemctlenablersyncd systemctl start rsyncd firewall-cmd --permanent --add-port=873/tcp firewall-cmd --reload
7. 验证服务运行
ss -tulnp|grep:873 telnet192.168.10.200873

第二步:配置客户端(Client Node)

1. 安装 rsync
yuminstall-yrsync
2. 创建备份脚本/opt/scripts/backup_rsync.sh
#!/bin/bash# 参数设置RSYNC="/usr/bin/rsync"SERVER="192.168.10.200"MODULE="web_backup_${HOSTNAME}"USER="backup_user_${HOST_IP##*.}"# 如 backup_user_10PASSWD_FILE="/etc/rsync.password"LOCAL_DIRS="/var/www/html /etc/httpd /etc/nginx /var/lib/mysql/dump.sql"DATE=$(date+"%Y%m%d_%H%M%S")LOG="/var/log/backup_rsync.log"exec>>$LOG2>&1echo"=== Start backup at$DATE==="# 数据库导出(关键!)MYSQLDUMP="/usr/bin/mysqldump"$MYSQLDUMP--single-transaction -u root -p'mysql_root_pass'--all-databases>/var/lib/mysql/dump.sqlif[$?-ne0];thenecho"❌ MySQL dump failed!"exit1fi# 执行 rsync 推送fordirin$LOCAL_DIRS;doif[-d"$dir"]||[-f"$dir"];then$RSYNC-az --delete\--password-file=$PASSWD_FILE\$dir\$USER@$SERVER::$MODULE/data/$(basename$dir)/echo"✅ Synced$dir"elseecho"⚠️ Skipped missing path:$dir"fidoneecho"=== Backup completed at$(date)==="

✅ 补充说明:

  • 若使用 Nginx,则跳过/etc/httpd
  • dump.sql建议每天不同名(如加时间戳),防止覆盖
3. 创建密码文件
echo"MyStr0ngP@ssw0rd1">/etc/rsync.passwordchmod600/etc/rsync.password
4. 加入定时任务(crontab)
# 每天凌晨2点执行02* * * /bin/bash /opt/scripts/backup_rsync.sh
5. 设置执行权限
chmod+x /opt/scripts/backup_rsync.shmkdir-p /var/log/touch/var/log/backup_rsync.logchownroot.root /opt/scripts/backup_rsync.sh

✅ 四、测试与验证

1. 单机测试(手动触发)

sh-x /opt/scripts/backup_rsync.sh

查看日志是否有错误,确认目标路径是否生成文件。

2. 服务端验证接收

ls-la /backup/web/192.168.10.10/data/

应看到html/,httpd/,dump.sql等目录。

3. 连通性测试

# 在客户端测试连接服务端模块rsyncrsync://backup_user_10@192.168.10.200/web_backup_192.168.10.10

输入密码后应列出模块内容。

4. 模拟恢复测试(必须做!)

选择一台机器,删除部分文件,尝试从备份还原:

rsync-avz\--password-file=/etc/rsync.password\rsync://backup_user_10@192.168.10.200/web_backup_192.168.10.10/data/html/\/var/www/html/

重启 Apache/Nginx 验证网站正常。


📦 五、交付文档

1. 交付清单

内容说明
架构图拓扑结构、IP 分配、流程图
部署手册服务端 & 客户端部署步骤
账号密码表(脱敏处理)用户、密码哈希、对应 IP
备份策略表每日/每周/每月保留策略
恢复流程指南如何从备份还原单个文件或整机
监控指标成功次数、失败告警方式
联系人信息运维负责人、应急响应电话

2. 示例:备份保留策略

类型保留周期说明
每日增量7 天最近一周每天一份
每周全量4 周每周日做一次全量快照
每月归档3 个月归档至冷存储(如磁带、对象存储)

可通过脚本自动清理旧备份:

find/backup/web/*/data/ -mtime +7 -execrm-rf{}\;

🛠️ 六、后期运维与优化

1. 自动化批量管理(必选)

使用Ansible实现一键部署:

# deploy_rsync_client.yml-hosts:webserverstasks:-name:Install rsyncyum:name:rsyncstate:present-name:Write password filecopy:content:"{{ lookup('env','RSYNC_PASS') }}"dest:/etc/rsync.passwordmode:'0600'-name:Deploy backup scripttemplate:src:backup_rsync.sh.j2dest:/opt/scripts/backup_rsync.shmode:'0700'-name:Add cron jobcron:minute:"0"hour:"2"job:"/bin/bash /opt/scripts/backup_rsync.sh"

2. 增加监控告警

  • Zabbix/Prometheus采集客户端日志中的"Backup completed""failed"
  • Logwatch定期发送摘要邮件。
  • 企业微信/钉钉机器人推送失败通知。

3. 性能优化建议

  • 开启--compress减少网络负载。
  • 使用--bwlimit=10000控制带宽,避免影响业务。
  • 对大文件使用--partial断点续传。
  • 多线程备份?可用parallel工具并行推送多目录。

4. 安全加固

  • 所有通信走内网 VLAN。
  • 使用 iptables 限制仅允许指定 IP 访问 873。
  • 定期轮换密码(配合 Ansible)。
  • 不使用明文密码?可升级为 SSH Tunnel + rsync over SSH(但失去并发优势)。

5. 扩展方向

功能描述
Web 管理界面使用 PHP 写一个简单的备份状态展示页
版本控制结合 git-lfs 存储备份元数据
异地容灾/backup目录再 rsync 到异地机房
快照机制使用 LVM snapshot + rsync 提高一致性

🧾 总结

阶段关键动作
规划明确备份范围、频率、保留策略、存储容量
部署rsync daemon + 密码认证 + 定时脚本
测试手动执行 → 日志分析 → 恢复演练
交付文档齐全、交接培训、责任人明确
运维监控告警 + 自动化 + 安全审计

📎 附录:常用命令速查

# 查看 rsync 模块列表rsyncrsync://backup_user@192.168.10.200/# 手动推送测试rsync-avz --password-file=/etc/rsync.password /tmp/test/ backup_user@192.168.10.200::web_backup_192.168.10.10/data/test/# 查看服务状态systemctl status rsyncdtail-f /var/log/backup_rsync.log# 清理过期备份find/backup/web/ -name"*.sql"-mtime +7 -delete

下一步?:

  • Ansible Playbook 模板
  • Shell 脚本完整版(含日志切割)
  • Zabbix 监控项模板
  • HTML 报表页面原型
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/27 15:12:45

Windows Server 2022官方镜像完整获取指南:从下载到验证的全流程

Windows Server 2022官方镜像完整获取指南:从下载到验证的全流程 【免费下载链接】WindowsServer2022官方镜像ISO下载 本仓库提供的是Windows Server 2022的官方镜像ISO文件,该镜像是我专栏中使用的版本,同时也是网络搭建比赛所采用的镜像。此…

作者头像 李华
网站建设 2026/2/26 17:26:07

AndroidGen-GLM-4-9B:开启移动智能体新时代的革命性突破

AndroidGen-GLM-4-9B:开启移动智能体新时代的革命性突破 【免费下载链接】androidgen-glm-4-9b 项目地址: https://ai.gitcode.com/zai-org/androidgen-glm-4-9b 2025年4月,智谱AI正式发布基于GLM-4-9B大模型的AndroidGen开源版本,标…

作者头像 李华
网站建设 2026/2/27 20:03:58

微服务架构下的分布式数据加密:SQLCipher实战指南

在微服务架构日益普及的今天,数据安全已成为每个技术团队必须直面的挑战。你是否曾为分布式环境下的数据加密而头疼?多个服务节点间的密钥同步、跨服务数据传输加密、性能损耗控制等问题往往让开发者望而却步。本文将通过SQLCipher加密库,为你…

作者头像 李华
网站建设 2026/2/24 0:31:26

16、搭建 Asterisk VoIP 服务器全攻略

搭建 Asterisk VoIP 服务器全攻略 1. 配置与测试 首先,我们需要进行一系列的配置和测试工作。以下是相关的配置参数: format=wav49 skipms=3000 maxsilence=10 silencethreshold=128 maxlogins=3 [local-vm-users] ;mailbox number, password, username 250 => 1234,E…

作者头像 李华
网站建设 2026/2/24 1:47:38

Apache Mesos集群运维实战:故障恢复与版本管理完全指南

Apache Mesos集群运维实战:故障恢复与版本管理完全指南 【免费下载链接】mesos Apache Mesos 项目地址: https://gitcode.com/gh_mirrors/mesos2/mesos 在现代分布式系统中,Mesos集群维护是确保业务连续性的关键环节。本指南将深入解析Mesos集群运…

作者头像 李华