/var/www/html
或其他自定义目录/etc/httpd/conf/
, /etc/httpd/conf.d/
/etc/nginx/
, /etc/nginx/conf.d/
/etc/php.ini
, /etc/php.d/
/etc/pki/tls/
/var/log/httpd/
, /var/log/nginx/
# 使用tar创建完整备份
tar -czvf /backup/web_backup_$(date +%Y%m%d).tar.gz /var/www/html /etc/httpd
# 仅备份修改过的文件(增量备份)
find /var/www/html -type f -mtime -1 -exec tar -rvf /backup/incremental_$(date +%Y%m%d).tar {} \;
# MySQL/MariaDB备份
mysqldump -u root -p --all-databases > /backup/mysql_all_$(date +%Y%m%d).sql
# PostgreSQL备份
sudo -u postgres pg_dumpall > /backup/pg_all_$(date +%Y%m%d).sql
#!/bin/bash
# 定义备份目录
BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d)
# 创建备份目录
mkdir -p $BACKUP_DIR/$DATE
# 备份网站文件
tar -czvf $BACKUP_DIR/$DATE/web_files.tar.gz /var/www/html
# 备份Apache配置
tar -czvf $BACKUP_DIR/$DATE/apache_config.tar.gz /etc/httpd
# 备份MySQL数据库
mysqldump -u root -pPASSWORD --all-databases > $BACKUP_DIR/$DATE/mysql_all.sql
# 保留最近7天备份
find $BACKUP_DIR -type d -mtime +7 -exec rm -rf {} \;
# 解压恢复网站文件
tar -xzvf /backup/web_backup_20230101.tar.gz -C /
# 恢复配置文件
tar -xzvf /backup/apache_config_20230101.tar.gz -C /
# MySQL恢复
mysql -u root -p < /backup/mysql_all_20230101.sql
# PostgreSQL恢复
sudo -u postgres psql -f /backup/pg_all_20230101.sql
rsync -avz --delete /var/www/html backup-server:/backup/web_root/
# 安装Bacula
yum install bacula-director bacula-storage bacula-client bacula-console
# 配置/etc/bacula/bacula-dir.conf, bacula-sd.conf, bacula-fd.conf
# 创建LVM快照
lvcreate -L 10G -s -n web_snap /dev/vg00/lv_web
# 挂载快照进行备份
mount /dev/vg00/web_snap /mnt/snapshot
tar -czvf /backup/web_snapshot.tar.gz /mnt/snapshot
umount /mnt/snapshot
# 删除快照
lvremove /dev/vg00/web_snap
# 使用AWS S3 CLI备份
aws s3 cp /backup/web_backup.tar.gz s3://your-bucket/web_backup_$(date +%Y%m%d).tar.gz
# 使用rclone备份到Google Drive
rclone copy /backup remote:backup-folder
通过实施这些备份和恢复策略,您可以确保CentOS Web服务器在发生故障时能够快速恢复,最小化服务中断时间。