news 2026/5/23 23:54:11

现对约 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/5/18 19:46:17

29、网络度相关性的深入剖析

网络度相关性的深入剖析 在网络分析中,度相关性是一个关键概念,它能帮助我们理解网络中节点连接的模式和特性。下面将详细介绍度相关性的相关内容,包括结构截断、 assortative 和 disassortative 网络的特点、rich - club 行为以及 Newman 相关系数等。 1. 结构截断与度相…

作者头像 李华
网站建设 2026/4/30 23:13:00

9、日期与时间管理:标准、概念与夏令时影响

日期与时间管理:标准、概念与夏令时影响 1. 时间周期建模 在时间建模方面,多数 ISO 8601 版本未提供无限有效性建模的解决方案。通常,尽管结束点(EP)值未知,但可知其将在未来发生。对于模型中未定义的有效性问题,解决方法是用一个足够大的未来值替代,或者采用用户自定…

作者头像 李华
网站建设 2026/5/23 23:53:41

终极指南:al-khaser反调试技术深度实战解析

在网络安全攻防对抗中,反调试技术已成为恶意软件分析的关键战场。al-khaser项目作为业界公认的反调试技术宝库,集成了从基础检测到高级对抗的完整技术栈,为安全研究人员提供了实战演练的绝佳平台。本文将带你深入al-khaser技术演进路径&#…

作者头像 李华
网站建设 2026/5/23 15:09:26

D3.js标签布局重构:从数据拥挤到视觉优雅的技术革新

D3.js标签布局重构:从数据拥挤到视觉优雅的技术革新 【免费下载链接】d3 Bring data to life with SVG, Canvas and HTML. :bar_chart::chart_with_upwards_trend::tada: 项目地址: https://gitcode.com/gh_mirrors/d3/d3 在数据可视化领域,标签重…

作者头像 李华
网站建设 2026/5/10 13:15:55

28、利用OpenVPN构建安全的跨平台虚拟专用网络

利用OpenVPN构建安全的跨平台虚拟专用网络 1. 静态密钥与PKI的对比 使用静态密钥存在一个问题,即会失去完美前向保密性,因为静态密钥从不改变。如果攻击者设法嗅探并捕获网络流量,然后获取并破解了加密密钥,那么攻击者就可以解密过去和未来的所有数据。而OpenVPN支持使用…

作者头像 李华
网站建设 2026/5/21 18:13:13

55、网络术语与Linux内核构建全解析

网络术语与Linux内核构建全解析 1. 重要网络术语介绍 在网络技术领域,有许多关键的术语和概念,它们构成了网络通信和数据处理的基础。下面将对一些重要的网络术语进行详细介绍。 1.1 TCAM - 三元内容可寻址存储器 与普通计算机中的RAM不同,普通RAM将数据存储在多个地址中…

作者头像 李华