Linux服务器备份容灾需围绕RPO/RTO构建可验证、可切换、有兜底的能力:分层备份(配置用rsync+etckeeper、业务数据增量同步、数据库多级备份)、选对工具(borgbackup/LVM/rclone)、自动化带监控校验、定期恢复演练。

Linux 服务器备份与容灾不是配好 cron 就算完成,而是围绕 RPO(恢复点目标)和 RTO(恢复时间目标)构建的一套可验证、可切换、有兜底的能力。关键在分层处理数据、选对工具、自动执行并闭环验证。
按数据类型分级做定时备份
不同数据性质差异大,不能统一用 rsync 或 tar 处理:
-
系统配置(/etc、/boot、/home 中的配置文件):用
rsync + etckeeper组合。每次修改自动 commit;每天凌晨再同步一份到远程服务器,保留最近 30 天硬链接快照(--link-dest) -
业务数据(如 /var/www、/opt/app):每日增量 rsync 到异地 NAS 或 S3;对高敏目录可加
inotifywait实现秒级触发同步(小规模适用) -
MySQL 数据库:每小时执行
mysqldump --single-transaction+ 压缩加密;开启 binlog 归档;核心库额外启用 Percona XtraBackup 物理备份 -
PostgreSQL:用
pg_dump全量 + WAL 归档实现 PITR(时间点恢复),WAL 日志实时同步至另一节点 -
日志与临时文件:不直接备份,靠
logrotate控制生命周期;必要时压缩归档最近 7 天的/var/log
选对工具,兼顾效率与安全
避免裸用 tar 或 dd 做主力备份,优先选用支持去重、加密、校验的方案:
- 本地快照:LVM 或 Btrfs 开启快照功能,5 秒内生成一致状态副本,适合快速回滚
-
网络备份首选 borgbackup:内置 AES-256 加密、重复数据删除、SHA-256 校验;示例:
borg create --compression lz4 repo::'{hostname}-{now:%Y%m%d-%H%M}' /etc /home /var/www - 云备份走 rclone:把加密后的 borg 仓库或 tar 包同步至 AWS S3 / 腾讯云 COS,并设置生命周期策略自动清理 90 天前版本
-
离线备份每月一次:用
borg export-tar导出归档,写入加密 U 盘或外置硬盘,断电离线存放
自动化必须带监控和兜底机制
定时任务只是起点,真正提升容灾水平靠闭环管理:
- 所有备份脚本末尾加校验:如
borg check repo或sha256sum backup.tar.gz,失败则发邮件告警 - crontab 中设置
MAILTO="admin@example.com",捕获 stdout/stderr 日志 - 备份前检查目标空间:脚本开头加入
df -h /backup | awk 'NR==2 {print $5}' | sed 's/%//' | [[ $1 -gt 90 ]],超 90% 拒绝执行 - 关键路径使用绝对路径,SSH 密钥需显式指定(
-e "ssh -i /path/to/id_rsa"),私钥权限必须为 600
定期验证与真实恢复演练
备份有效性的唯一检验方式是恢复测试:
- 每月至少一次真实恢复演练:从备份中拉起最小可用环境,实测 RTO 是否达标
- 演练覆盖全链路:包括解密、解包、数据库导入、服务启动、接口连通性验证
- 记录每次演练结果,更新 RPO/RTO 实际值,反向优化备份频率与保留周期
- 灾难场景模拟要包含常见故障:误删、磁盘坏道、勒索加密、主库宕机等


















