备份工具的目标是恢复成功,不是任务列表显示成功。
\n
Duplicati 很适合给 HomeLab 做定时备份,但它不是“点了成功就安心”的工具。备份系统的目标只有一个:需要恢复时真的能恢复。任务列表显示绿色,只说明某次任务跑完了;密码是否记得住、目标是否还能访问、版本是否保留得合理、恢复速度是否可接受,都要另外验证。
备份目标要按故障类型选择
备份到同一块硬盘的另一个目录,只能防少量误删,防不了硬盘损坏。备份到同一台机器的另一个存储池,能多挡一层风险,但遇到整机故障仍然不够。更稳的策略是至少有一份离开主机的副本,比如另一台 NAS、外接盘轮换、云对象存储或其他可信位置。目标不一定昂贵,但要和主数据有足够隔离。
我会把备份目标按用途分级:配置目录和数据库导出体积小,适合频繁备份并保留较多版本;照片、文档、音乐这类资料体积大,按变化频率设置周期;缓存、缩略图、临时文件通常不进备份。Duplicati 的包含和排除规则要写清楚,不然任务会越来越慢,恢复时还混进大量无价值文件。
加密密码是恢复生命线
Duplicati 支持加密,这是好事,但加密密码丢失就等于备份不可用。密码不能只存在浏览器自动填充里,也不能只存在运行容器的环境变量里。至少要把它放进可靠的密码管理器,并准备一份离线恢复说明,写明备份目标、任务名称、加密方式和恢复入口。
加密也不代表可以随便暴露备份文件。备份里可能包含配置、家庭资料、数据库导出和内部路径。目标端账号权限应尽量只给备份工具需要的范围,不要为了省事使用拥有全部存储权限的账号。备份任务是长期运行的,一旦凭据泄露,影响会持续很久。
恢复演练要固定化
没有恢复演练的备份,只能算心理安慰。我会每月抽一两个服务做小恢复:从 Duplicati 选择某个时间点,把文件恢复到临时目录,检查文件数量、权限、配置内容和校验结果。数据库类服务还要实际导入测试库,确认应用能启动。这个过程不必每次都恢复全量,但要覆盖关键类型。
恢复演练还会暴露很多平时看不到的问题:备份目标速度太慢、旧版本保留不够、排除规则误排了关键文件、备份密码找不到、恢复后的属主不对。越早发现,代价越小。真正故障发生时,再研究 Duplicati 怎么恢复,会让人非常被动。
保留策略要符合数据变化
保留版本不是越多越好,也不是越少越省。配置目录变动小,可以保留较长时间;频繁变化的大目录如果版本过多,会快速占满目标空间。Duplicati 的智能保留、按时间保留都可以用,但要结合实际变化量观察目标增长。第一次设置后,至少连续看几周任务耗时和备份大小。
我会特别关注删除传播。某个目录被误删后,如果备份保留太短,等发现时好版本可能已经过期。对于重要资料,保留策略要覆盖“人发现问题所需的时间”。家庭环境里,很多错误不是当天发现,而是几周后找文件才发现。
Docker 部署边界
Duplicati 容器最好只读挂载源目录,写权限只给备份目标和自身配置目录。这样即使工具配置错误,也不容易改动源数据。容器的配置目录同样要备份,因为里面有任务定义、状态和部分本地数据库。升级前先导出任务或备份配置目录,避免升级后任务列表异常。
排障时我会先看任务日志里的文件数量、错误数量、目标连接错误和耗时变化。突然变慢通常不是“软件变慢了”,可能是某个目录被加入备份、目标网络异常、压缩加密消耗变大或目标端限速。备份工具要像基础设施一样观察,而不是等失败邮件来了再处理。
一份可执行的恢复说明
最后我会为每个备份任务留一段恢复说明:备份了哪些目录,排除了哪些目录,目标在哪里,加密密码存放规则是什么,恢复到临时目录的步骤是什么,恢复后如何验证。说明越朴素越好,因为真正需要它的时候,通常已经是机器故障或数据误删现场。Duplicati 能帮忙自动跑任务,但恢复责任仍然在维护者手上。
通知也要设置得克制但有效。每次成功都推送,时间久了容易麻木;只在失败时提醒,又可能错过任务长时间没有运行。比较稳的做法是失败立即提醒,同时每周或每月发一份摘要,包含最近成功时间、备份大小变化和目标剩余空间。备份系统安静运行可以,但不能完全没有存在感。
备份任务变更也要记录。新增排除规则、调整保留周期、换目标地址、修改加密设置,都可能影响未来恢复。每次改完后跑一次小任务,再恢复一个样本文件。这样可以及时发现规则写错,而不是等真正需要恢复时才发现关键目录没有进去。
目标空间不足要提前预警。备份失败很多时候不是任务配置坏了,而是目标端悄悄满了。
此处评论已关闭