温馨提示×

centos上apache2如何备份

小樊
40
2026-10-17 14:37:36
栏目: 智能运维

在 CentOS 上,Apache 通常是指 httpd(而不是 Debian/Ubuntu 中的 apache2)。下面给你一套实用备份方案,包含配置文件、网站文件、数据库。


一、备份 Apache(httpd)配置文件

1. 主配置目录

CentOS 上 Apache 配置一般在:

/etc/httpd/

备份命令:

tar czvf httpd-conf-$(date +%F).tar.gz /etc/httpd

常见重要文件:

  • /etc/httpd/conf/httpd.conf
  • /etc/httpd/conf.d/*
  • /etc/httpd/ssl/*(如果有 HTTPS)

二、备份网站文件(DocumentRoot)

1. 查看网站根目录

grep -R "DocumentRoot" /etc/httpd/

常见路径:

/var/www/html
/var/www/

2. 备份网站数据

tar czvf www-data-$(date +%F).tar.gz /var/www

三、备份虚拟主机配置(如有)

如果有多个站点:

ls /etc/httpd/conf.d/

一般每个站点一个 .conf 文件,已包含在 /etc/httpd 备份中。


四、备份数据库(如 MySQL / MariaDB)

1. 备份所有数据库

mysqldump -u root -p --all-databases > mysql-all-$(date +%F).sql

2. 只备份某个库

mysqldump -u root -p dbname > dbname-$(date +%F).sql

五、一键备份脚本示例(推荐)

#!/bin/bash
BACKUP_DIR=/backup/apache
DATE=$(date +%F)

mkdir -p $BACKUP_DIR

# 配置
tar czf $BACKUP_DIR/httpd-conf-$DATE.tar.gz /etc/httpd

# 网站
tar czf $BACKUP_DIR/www-$DATE.tar.gz /var/www

# 数据库
mysqldump -u root -p123456 --all-databases > $BACKUP_DIR/mysql-$DATE.sql

echo "Backup done: $DATE"

赋予执行权限:

chmod +x backup.sh

加入定时任务(每天凌晨 2 点):

crontab -e
0 2 * * * /root/backup.sh

六、恢复方法(简要)

恢复配置

tar xzvf httpd-conf-2026-01-21.tar.gz -C /

恢复网站

tar xzvf www-2026-01-21.tar.gz -C /

恢复数据库

mysql -u root -p < mysql-2026-01-21.sql

七、建议

✅ 备份到 异地 / 云存储(rsync、oss、s3)
✅ 定期测试恢复
✅ 配置文件 + 数据 + 数据库 三者缺一不可


如果你愿意,我可以:

  • 给你 rsync 自动同步备份
  • 区分 CentOS 7 / 8 / Stream
  • 或针对 Docker Apache 备份方案

你目前是 CentOS 几?单机还是生产环境?

0 踩