以下是Debian LAMP服务器的备份方案,涵盖系统、数据库及自动化策略:
一、系统级备份
-
全系统备份(tar命令)
sudo tar -czvf backup.tar.gz --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp --exclude=/run --exclude=/lostfound /排除虚拟文件系统和临时目录,减少备份体积。
-
磁盘克隆(Clonezilla)
- 通过Live CD/USB启动,选择“device-image”模式备份整个磁盘或分区,适合批量恢复。
二、数据库备份
-
MySQL/MariaDB备份
- 单次全量备份:
mysqldump -u username -p --all-databases > all_databases.sql或使用并行工具
mysqlpump(MySQL 5.7+)提升速度。 - 增量备份:结合
rsync同步数据库文件目录(需确保数据一致性)。
- 单次全量备份:
-
PostgreSQL备份
- 使用
pg_dump导出单个数据库:pg_dump -U username -W -d dbname > dbname.sql或
pg_dumpall备份所有数据库。
- 使用
三、文件系统备份
- 增量备份(rsync)
sudo rsync -avz --delete /var/www/html /path/to/backup/ # 备份网站文件 sudo rsync -avz --delete /etc/apache2 /path/to/backup/ # 备份配置文件通过
--delete参数同步删除操作,保持备份与源一致。
四、自动化与安全策略
-
定时任务(crontab)
# 每天凌晨2点执行全量备份 0 2 * * * tar -czvf /backup/$(date +\%F).tar.gz /path/to/source # 每小时同步数据库增量 0 * * * * rsync -avz /var/lib/mysql /backup/mysql_incremental/ -
加密与存储
- 用
duplicity加密备份文件并上传至云存储:duplicity --encrypt-key "YOUR_KEY" /path/to/source s3://your-bucket/backup/ - 定期将备份文件转存至离线介质(如NAS、外部硬盘)。
- 用
五、验证与维护
- 定期测试恢复:模拟故障场景,验证备份文件能否正常恢复系统和数据。
- 监控备份状态:通过日志或工具(如
backupninja)监控备份任务执行情况。
工具推荐:
- 全量备份:
tar、Clonezilla - 增量备份:
rsync、duplicity、backupninja - 数据库备份:
mysqldump、xtrabackup(适用于大规模数据库)
根据业务需求选择组合方案,优先确保核心数据(如数据库、配置文件)的安全性和可恢复性。