
真正可靠的Linux存储备份必须分层、异构、可验证:本地快照层(LVM/btrfs)支持秒级回退;近线层用rsync+hardlink实现多版本增量归档;离线层通过rclone加密同步至对象存储并校验;恢复层需每月真机还原测试。
Linux 存储备份不是“配个 rsync 定时任务就完事”,真正可靠的体系必须分层、异构、可验证。单点故障(比如备份盘和源盘共用同一块主板 SATA 控制器)、静默损坏(bit rot)、误删未及时发现、恢复流程从未实测——这些才是压垮备份的真正原因。
这一层解决“刚删错文件”“配置改崩了”这类分钟级恢复需求,不依赖外部设备,延迟低、开销小。
lvm 快照需在创建逻辑卷时预留足够 lvcreate -L 10G -s -n snap_root /dev/vg0/root 空间,否则快照写满即失效(snapshot is full 错误)btrfs 子卷快照更轻量:btrfs subvolume snapshot /mnt/data /mnt/data/.snapshots/20250520,但注意它不自动去重跨子卷,且 btrfs filesystem usage 才能真实反映写入放大目标是保留多版本、节省空间、避免全量传输。核心靠 rsync --link-dest 复用未变文件的硬链接,而非拷贝。
/backup/hostname/daily.0, /backup/hostname/daily.1… 每次运行前 mv daily.0 daily.1; mv daily.1 daily.2,再用 
--link-dest=/backup/hostname/daily.0 同步到 daily.0
rsync 必须加 -aHAX:保留硬链接(-H)、ACL(-A)、扩展属性(-X),否则权限/SELinux 上下文丢失--delete 直接清理旧备份,先 find /backup/hostname -maxdepth 1 -name 'daily.*' -mtime +30 -delete 按时间删,防止同步中途失败导致整层被清空解决火灾、勒索软件、磁盘批量损坏等场景。关键在加密前置、传输可控、校验闭环。
rclone mount 或 rclone sync 的 --crypt 远程,而非先 gpg 再传——前者支持流式加密+断点续传,后者大文件易失败且无法增量s3 或 backblaze b2,务必启用服务端加密(server_side_encryption = AES256),但注意这不替代客户端加密,两者应并存rclone check 对比本地与远端的 --size-only 或 --checksum(后者慢但准),并把结果写入日志,失败则告警——没验证过的备份等于没备份所有备份策略最终要落在“能否恢复”上。自动化脚本不能只做 ls -l 或 stat,必须走完整路径。
dd 写入备份的系统盘镜像(如有),或从 rsync 快照重建根目录,再 chroot 修复引导pg_restore 到临时实例,连上去 SELECT COUNT(*) 随机表,确认数据可读rsync 备份里漏了 /etc/crypttab,导致恢复后无法解密 LUKS 分区最常被跳过的其实是恢复验证和快照空间监控。一个 lvs 输出没人看,直到某天 lvconvert --merge 报错说快照已满;一次 rclone check 脚本权限写错,三个月备份其实全是空壳。备份体系的脆弱点,永远藏在“以为它在工作”的地方。