Debian Apache服务器如何备份与恢复
Debian Apache 服务器备份与恢复
一 备份范围与准备
- 备份范围建议覆盖:网站文件(默认文档根目录 /var/www/html,如使用虚拟主机则为各 /var/www/站点名)、配置文件(/etc/apache2/,如使用 PHP 建议同时备份 /etc/php/)、数据库(如 MySQL/MariaDB 或 PostgreSQL)、以及可选的日志(/var/log/apache2/,用于审计与排错)。
- 准备与约定:以 root 或具备 sudo 权限执行;备份文件集中到如 /backup 并再做异地/云端副本;操作前确认磁盘空间与保留周期;如为生产环境,建议先停机或在低峰期操作,减少写入导致的不一致。
二 快速备份步骤
-
- 网站文件
- 单站点默认目录:
sudo tar -czvf /backup/apache_files_$(date +%F).tar.gz /var/www/html - 多虚拟主机(示例含两个站点):
sudo tar -czvf /backup/apache_sites_$(date +%F).tar.gz /var/www/site1 /var/www/site2
-
- 配置文件
- Apache:
sudo tar -czvf /backup/apache_configs_$(date +%F).tar.gz /etc/apache2 - PHP(可选):
sudo tar -czvf /backup/php_configs_$(date +%F).tar.gz /etc/php
-
- 数据库
- MySQL/MariaDB:
sudo mysqldump -u 用户名 -p --single-transaction --routines --triggers 数据库名 > /backup/db_数据库名_$(date +%F).sql - PostgreSQL:
sudo -u 用户名 pg_dump -U 用户名 数据库名 > /backup/db_数据库名_$(date +%F).sql
-
- 日志(可选)
- sudo tar -czvf /backup/apache_logs_$(date +%F).tar.gz /var/log/apache2
-
- 校验与异地/云端
- 校验归档:tar -tzf /backup/xxx.tar.gz | head;或 sha256sum /backup/xxx.tar.gz
- 同步到远端(示例 rsync):rsync -avz /backup/ 用户名@备份主机:/backup/
- 如需长期留存,可结合 cron 做定时任务与保留策略(如保留最近 7/30 天)。
三 快速恢复步骤
-
- 恢复网站文件
- 覆盖还原:
sudo tar -xzvf /backup/apache_files_YYYY-MM-DD.tar.gz -C /
-
- 恢复配置文件
- 为降低风险,建议先停服务再还原:
sudo systemctl stop apache2
sudo tar -xzvf /backup/apache_configs_YYYY-MM-DD.tar.gz -C /
sudo systemctl start apache2
-
- 恢复数据库
- MySQL/MariaDB:
sudo mysql -u 用户名 -p 数据库名 < /backup/db_数据库名_YYYY-MM-DD.sql - PostgreSQL:
sudo -u 用户名 psql -U 用户名 数据库名 < /backup/db_数据库名_YYYY-MM-DD.sql
-
- 权限与验证
- 确保网站目录属主与权限正确(示例):
sudo chown -R www-data:www-data /var/www/html
sudo find /var/www -type d -exec chmod 755 { } ;
sudo find /var/www -type f -exec chmod 644 { } ; - 访问站点与查看错误日志验证:
sudo tail -n50 /var/log/apache2/error.log
四 进阶与自动化
- 使用 systemd 定时器替代 cron(示例每日 2:00 备份)
-
创建服务单元 /etc/systemd/system/backup-apache.service:
[Unit]
Description=Backup Apache files and configs
After=network.target[Service]
Type=oneshot
ExecStart=/usr/bin/tar -czvf /backup/apache_files_$(date +%%F).tar.gz /var/www/html
ExecStart=/usr/bin/tar -czvf /backup/apache_configs_$(date +%%F).tar.gz /etc/apache2 -
创建定时器 /etc/systemd/system/backup-apache.timer:
[Unit]
Description=Daily Apache backup timer
Requires=backup-apache.service[Timer]
OnCalendar=daily
Persistent=true[Install]
WantedBy=timers.target -
启用:
sudo systemctl daemon-reload
sudo systemctl enable --now backup-apache.timer
-
- 备份策略补充
- 在 完全备份 基础上结合 增量/差异备份 可降低负载与占用;Linux 环境下可使用 dump/restore 实现分级备份与精细恢复(适合文件系统级备份场景)。
五 常见问题与排错
- 403/404 或样式丢失:检查 DocumentRoot、Directory 配置与目录权限(应为 www-data:www-data,目录 755、文件 644)。
- 端口占用导致启动失败:ss -tlnp | grep ‘:80’;确认 apache2 未被其他进程占用。
- 数据库导入失败:确认目标库存在、字符集一致;MySQL 导入时加上 –single-transaction 减少锁表影响。
- 配置文件语法错误:apache2ctl configtest;修正后再启动服务。
- SELinux/AppArmor:如启用,确认策略允许 Apache 访问网站目录与日志路径。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian Apache服务器如何备份与恢复
本文地址: https://pptw.com/jishu/786249.html
