Ubuntu Apache服务器备份恢复指南
Apache的核心配置文件位于/etc/apache2/目录(包含sites-available/、mods-enabled/等子目录),可使用以下两种方式备份:
tar命令将整个目录打包为.tar.gz文件,便于存储和传输。命令示例:sudo tar -czvf apache2_config_$(date +%Y%m%d).tar.gz /etc/apache2/apache2_config_20251111.tar.gz),存放在当前目录。/etc/apache2/到指定备份路径(如/backup/),适用于需要保留目录结构的场景。命令示例:sudo cp -r /etc/apache2/ /backup/apache2_config/网站文件默认存放在/var/www/html/目录(若使用自定义路径需调整),备份方法与配置文件类似:
sudo tar -czvf website_files_$(date +%Y%m%d).tar.gz /var/www/html/sudo cp -r /var/www/html/ /backup/www_files/若网站使用MySQL/PostgreSQL数据库,需单独备份数据库文件:
mysqldump命令导出指定数据库(如mywebsite),生成SQL文件:mysqldump -u root -p mywebsite > mywebsite_backup.sqlpg_dump命令导出数据库:pg_dump -U postgres mywebsite > mywebsite_backup.sqlroot/postgres为数据库用户名,mywebsite为目标数据库名通过cron定时任务实现定期自动备份,步骤如下:
/usr/local/bin/backup_apache.sh),内容示例:#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR="/backup/apache2"
sudo tar -czvf "$BACKUP_DIR/apache2_config_$DATE.tar.gz" /etc/apache2/
sudo tar -czvf "$BACKUP_DIR/website_files_$DATE.tar.gz" /var/www/html/
find "$BACKUP_DIR" -type f -name "*.tar.gz" -mtime +30 -exec rm {} \; # 删除30天前的备份
sudo chmod +x /usr/local/bin/backup_apache.shcron任务:运行crontab -e,添加以下行(每天凌晨2点执行):0 2 * * * /usr/local/bin/backup_apache.shtar命令解压备份文件到/etc/apache2/目录(覆盖原有文件):sudo tar -xzvf apache2_config_backup.tar.gz -C //etc/apache2/:sudo cp -r /backup/apache2_config/* /etc/apache2/sudo apache2ctl configtest(显示“Syntax OK”表示无错误),再重启Apache服务:sudo systemctl restart apache2/var/www/html/目录:sudo tar -xzvf website_files_backup.tar.gz -C /var/www/html//var/www/html/:sudo cp -r /backup/www_files/* /var/www/html/www-data用户读写权限):sudo chown -R www-data:www-data /var/www/html/sudo chmod -R 755 /var/www/html/mysql命令导入备份的SQL文件:mysql -u root -p mywebsite < mywebsite_backup.sqlpsql命令导入:psql -U postgres mywebsite < mywebsite_backup.sqlmywebsite为目标数据库名sudo命令,确保对系统目录有读写权限。sudo systemctl stop apache2),避免数据冲突;恢复完成后重启服务(sudo systemctl start apache2)。