Debian Apache备份与恢复方法
一 备份范围与准备
grep -R DocumentRoot /etc/apache2/sites-enabled/ 查看实际路径。二 手动备份步骤
sudo tar -czvf /path/to/backup/apache_files_$(date +%F_%H-%M-%S).tar.gz /var/www/htmlsudo tar -czvf /path/to/backup/apache_configs_$(date +%F_%H-%M-%S).tar.gz /etc/apache2sudo mysqldump -u 用户名 -p --single-transaction --routines --triggers 数据库名 > /path/to/backup/db_$(date +%F).sqlsudo -u 用户名 pg_dump -U 用户名 数据库名 > /path/to/backup/db_$(date +%F).sqlsudo tar -czvf /path/to/backup/apache2_logs_$(date +%F).tar.gz /var/log/apache2--single-transaction 可减少锁表影响(适用于 InnoDB)。三 手动恢复步骤
sudo tar -xzvf /path/to/backup/apache_files_*.tar.gz -C /sudo tar -xzvf /path/to/backup/apache_configs_*.tar.gz -C /sudo mysql -u 用户名 -p 数据库名 < /path/to/backup/db_*.sqlsudo -u 用户名 psql -U 用户名 数据库名 < /path/to/backup/db_*.sqlsudo tar -xzvf /path/to/backup/apache2_logs_*.tar.gz -C /var/log/sudo systemctl restart apache2四 自动化与增强实践
0 2 * * * tar -czvf /backup/apache_files_$(date +\%F).tar.gz /var/www/html0 2 * * * tar -czvf /backup/apache_configs_$(date +\%F).tar.gz /etc/apache2sudo rsync -a --delete /etc/apache2/ /backup/apache2//var/log/apache2/*.log { daily missingok rotate 7 compress notifempty create 640 root adm }sudo logrotate -f /etc/logrotate.confsudo duplicity /etc/apache2 /var/www/html file:///backup/apache2$(date +%F_%H-%M-%S)),便于追溯与保留多份历史。五 验证与回滚建议
tar -tzf 备份文件.tar.gz;数据库可用 mysql -e "SELECT 1" 或 psql -c "SELECT 1" 简单自检。sudo apache2ctl configtest;通过后再重启。sudo tar -xzvf /backup/apache_configs_YYYY-MM-DD_HH-MM-SS.tar.gz -C / && sudo systemctl restart apache2sudo tar -xzvf /backup/apache_files_YYYY-MM-DD_HH-MM-SS.tar.gz -C /mysql/psql < 备份.sql 重新导入。