CentOS Apache备份恢复策略
Apache的关键数据需分类备份,覆盖配置、网站内容及运行日志:
/etc/httpd/conf/httpd.conf、虚拟主机配置(如/etc/httpd/conf.d/*.conf)、模块配置(/etc/httpd/conf.modules.d/);/var/www/html/(自定义站点需备份对应虚拟主机目录,如/var/www/vhosts/example.com/);/var/log/httpd/access_log、错误日志/var/log/httpd/error_log(保留近期日志便于故障排查);mysqldump -u username -p database_name > backup.sql)。tar(打包压缩,保留目录结构,适合全量备份)、cp(快速复制单个文件或目录,适合增量调整);rsync(仅同步变化文件,节省存储空间,适合频繁更新的网站,命令示例:rsync -avz --delete /source/ /backup/);/usr/local/bin/backup_apache.sh),内容示例:#!/bin/bash
BACKUP_DIR="/backup/apache"
DATE=$(date +%Y%m%d)
mkdir -p "$BACKUP_DIR"
tar -czvf "$BACKUP_DIR/apache_config_$DATE.tar.gz" /etc/httpd/conf
tar -czvf "$BACKUP_DIR/apache_content_$DATE.tar.gz" /var/www/html
tar -czvf "$BACKUP_DIR/apache_logs_$DATE.tar.gz" /var/log/httpd
find "$BACKUP_DIR" -type f -name "*.tar.gz" -mtime +7 -exec rm {} \; # 保留7天备份
crontab -e设置定时执行(如每天凌晨2点运行):0 2 * * * /usr/local/bin/backup_apache.sh >> /var/log/apache_backup.log 2>&1
确保脚本有执行权限(chmod +x /usr/local/bin/backup_apache.sh)。chown -R apache:apache /backup/apache),防止未授权访问;scp -i private_key或rsync -avz -e "ssh -i private_key"加密传输。sudo systemctl stop httpd
cp -r /etc/httpd /etc/httpd_current),防止恢复失败导致二次损失。tar -xzvf apache_config_20250101.tar.gz -C /;恢复网站:tar -xzvf apache_content_20250101.tar.gz -C /);apachectl configtest检查语法错误(若有错误,根据提示修正);sudo systemctl start httpd
/var/log/httpd/)确认无报错。apachectl configtest输出,定位错误行(如语法错误、路径不存在),修正后重新测试;/var/www/html需为755,文件为644);mysql -u username -p database_name < backup.sql),并检查数据库连接配置。