在CentOS 6和CentOS 7上搭建Web服务器的备份策略需要考虑系统差异、服务配置和业务需求。以下是详细的备份方案:
系统关键文件
/etc
:所有配置文件(Apache/Nginx、PHP、MySQL等)/var/www
或自定义Web根目录/var/log
:日志文件(可选)/home
:用户数据(如有)/var/lib/mysql
或PostgreSQL的/var/lib/pgsql
)数据库备份
mysqldump
或xtrabackup
pg_dump
服务配置
iptables
/firewalld
)tar
+ cron
(原生工具)rsync
+ --link-dest
(硬链接节省空间)mysqldump
(每日全量)+ binlog
(增量)scp
或rsync
到远程服务器tar
/rsync
或工具如 BorgBackup(支持去重加密)mariabackup
(InnoDB热备)或pg_basebackup
(PostgreSQL)systemd timer
替代cron
(CentOS 7推荐)rclone
同步到AWS S3/Google Cloud#!/bin/bash
# 全量备份脚本(CentOS 6/7通用)
BACKUP_DIR="/backups/web_$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR
# 备份/etc和Web数据
tar -czf $BACKUP_DIR/web_config.tar.gz /etc/{httpd,nginx,php*}
tar -czf $BACKUP_DIR/web_data.tar.gz /var/www
# MySQL备份(需配置~/.my.cnf免密)
mysqldump --all-databases | gzip > $BACKUP_DIR/mysql_all_$(date +%F).sql.gz
# 保留7天备份
find /backups -type d -name "web_*" -mtime +7 -exec rm -rf {} \;
rsync -avz --delete --link-dest=/backups/last_full /var/www user@remote:/backups/web_current
ln -snf /backups/web_current /backups/last_full
# /etc/systemd/system/web-backup.timer
[Unit]
Description=Weekly Web Backup
[Timer]
OnCalendar=Mon *-*-* 02:00:00
Persistent=true
[Install]
WantedBy=timers.target
备份类型 | 频率 | 保留周期 | 工具 | 存储位置 |
---|---|---|---|---|
全量备份 | 每周日 | 4周 | tar + mysqldump | 本地+远程NAS |
增量备份 | 每日 | 7天 | rsync | 异地服务器 |
数据库 | 每日全量 | 30天 | xtrabackup | 云存储(S3) |
bash
tar -xzf web_data.tar.gz -C /
bash
zcat mysql_all_20231001.sql.gz | mysql
bash
systemctl restart httpd mariadb # CentOS 7
service httpd restart # CentOS 6
tar -p
或rsync -a
)。gpg
加密备份文件。firewalld
,需备份iptables
规则(iptables-save > /etc/sysconfig/iptables
)。通过以上策略,可确保CentOS 6/7的Web服务器数据安全。建议结合监控(如Zabbix)实时检测备份任务状态。