温馨提示×

Debian Apache2如何备份与恢复

小樊
37
2025-12-17 21:53:09
栏目: 智能运维

Debian Apache2 备份与恢复

一 备份范围与准备

  • 备份范围建议包含:网站文件(默认文档根目录 /var/www/html,如为虚拟主机请包含各 /var/www/站点名)、Apache 配置(/etc/apache2)、相关环境配置(如 /etc/php)、以及数据库(如 MySQL/MariaDBPostgreSQL)。
  • 操作建议使用具有 root 权限的账户,并在关键操作前做好计划与通知,避免影响线上业务。
  • 文档根目录在不同站点或虚拟主机中可能不同,请以实际 VirtualHost 配置中的 DocumentRoot 为准。

二 快速备份步骤

  • 配置文件
    • 打包整个配置目录:
      sudo tar -czvf /backup/apache2_$(date +%Y%m%d%H%M%S).tar.gz /etc/apache2
    • 或仅备份单个关键文件并在修改前留回滚点:
      sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak
  • 网站文件
    • 打包默认站点:
      sudo tar -czvf /backup/www_$(date +%Y%m%d%H%M%S).tar.gz /var/www/html
    • 如为虚拟主机,分别对各站点目录打包,例如:
      sudo tar -czvf /backup/www_example_$(date +%Y%m%d%H%M%S).tar.gz /var/www/example
  • 数据库
    • MySQL/MariaDB:
      mysqldump -u 用户名 -p --single-transaction --routines --triggers 数据库名 > /backup/db_$(date +%Y%m%d%H%M%S).sql
    • PostgreSQL:
      pg_dump -U 用户名 -h 主机 -d 数据库名 -F c -f /backup/db_$(date +%Y%m%d%H%M%S).dump
  • 可选 使用 rsync 增量同步配置
    sudo rsync -a --delete /etc/apache2/ /backup/apache2_rsync/

三 快速恢复步骤

  • 建议先停止服务以避免写入冲突:
    sudo systemctl stop apache2
  • 配置文件
    • 解压覆盖:
      sudo tar -xzvf /backup/apache2_*.tar.gz -C /
    • 或单文件回滚:
      sudo mv /etc/apache2/apache2.conf.bak /etc/apache2/apache2.conf
  • 网站文件
    • 解压覆盖默认站点:
      sudo tar -xzvf /backup/www_*.tar.gz -C /
    • 虚拟主机按站点分别恢复至各自 DocumentRoot
  • 数据库
    • MySQL/MariaDB:
      mysql -u 用户名 -p 数据库名 < /backup/db_*.sql
    • PostgreSQL:
      pg_restore -U 用户名 -d 数据库名 /backup/db_*.dump
  • 使配置生效
    • 先语法检查:
      sudo apachectl configtest
    • 无错误后启动:
      sudo systemctl start apache2

四 自动化与异地备份

  • 定时任务 cron
    • 示例:每天 02:00 执行备份脚本 /opt/backup_apache.sh
      0 2 * * * /opt/backup_apache.sh
    • 脚本中可使用 tar/rsync 并结合日期命名,便于保留多份历史。
  • 远程备份
    • 在备份脚本中加入 rsync 通过 SSH 推送到远程存储:
      rsync -av --delete /backup/ user@remote:/backup/
    • 建议配置 SSH 免密登录 以避免交互式密码输入。

五 验证与注意事项

  • 配置安全
    • 变更前先备份关键文件;变更后用 apachectl configtest 校验语法,再重启服务。
  • 一致性
    • 对数据库使用如 –single-transaction(MySQL)以减少锁表影响;在高峰时段谨慎操作。
  • 权限与所有权
    • 恢复后检查网站目录属主与权限(常见为 www-data:www-data),例如:
      sudo chown -R www-data:www-data /var/www/html
  • 备份策略
    • 定期清理过期备份,保留多份历史;将备份存放在 外部磁盘/远程服务器/云存储;定期做 恢复演练 验证可用性与完整性。

0