跳转到内容

rsnapshot:轮转快照式备份 ​

完成后,一个共享文件夹会按你设的保留数量,轮转备份到另一块盘上。每个时间点的备份都是一棵完整的目录树,可以像普通文件夹一样浏览、复制,没有专门的还原工具。没有变化的文件用硬链接共享,不重复占空间。

适合谁 ​

  • 本机有第二块盘,想要「直接是文件」的多版本备份,用文件管理器或 SMB 就能翻。
  • 想要比 rsync 任务多几个历史版本,又不想学新工具。

不适合:

  • 要异地、加密备份:用 BorgBackup 或 restic。
  • 目标盘是 FAT、exFAT 这类不支持硬链接的文件系统。目标用 EXT4、XFS 或 Btrfs。
  • 要保护的是系统盘本身:看 Timeshift 和 备份系统盘。

备份是明文的,而且源丢失时会被轮转掉

  • 影响范围:备份没有加密,备份盘丢了就等于数据泄露;目标和源在同一块盘上不算备份。所有时间点共享硬链接,直接编辑快照里的文件会同时改变所有共享它的版本,所以只能复制出来用。更危险的是:源文件夹被意外清空时,rsnapshot 会如实把「空」同步成最新快照,保留数量用完后,旧的好版本就被轮转删掉了。
  • 前置条件:目标是独立的盘,容量不小于源的当前大小再加上变化量,文件系统支持硬链接;开启邮件通知,并定期看备份是否仍有内容;给每个级别保留足够多的份数。
  • 怎么回退:停用任务即可暂停轮转。已被轮转删除的版本无法找回,所以一旦发现源出问题,立刻停用任务。

插件信息 ​

项内容
包名openmediavault-rsnapshot
来源omv-extras。rsnapshot 本体是第三方软件
OMV 8 状态截至 2026-10-22 的 omv-extras synchrony 软件源为 8.1.1(amd64、arm64)。8.1 起任务配置改由 Salt 生成
菜单位置服务 → Rsnapshot(Services → Rsnapshot)
依赖需要先装 omv-extras

它怎么工作 ​

rsnapshot 在目标文件夹里为每个级别保存若干份,例如 daily.0(最新)、daily.1……weekly.0、monthly.0。第一次是完整复制;之后用 rsync 只传输变化的文件,没变的文件通过硬链接指向旧版本,所以 7 份每日备份占用的空间,只比 1 份多出每天的变化量。

备份落在目标共享文件夹下的这个位置(8.1 起的实际部署路径,界面提示里的 localhost/ 一层在新模板里没有,以实际目录为准):

text
<目标共享文件夹路径>/<源文件系统标签或挂载路径>/<源文件夹相对路径>/

安装 ​

系统 → 插件(System → Plugins)搜索 rsnapshot,安装 openmediavault-rsnapshot,硬刷新浏览器。

配置与使用 ​

创建任务 ​

服务 → Rsnapshot → 创建(Create),表单字段:

字段默认说明
启动(Enable)开关闭则不运行
备注(Comment)任务说明
源文件夹(Source folder)要备份的共享文件夹
仅单文件系统(One filesystem only)关开启后不进入其他挂载点
目标文件夹(Target folder)存放备份的共享文件夹,要在另一块盘上
每小时 / 每日 / 每周 / 每月 / 每年备份(Retain …)0 / 7 / 4 / 3 / 0每个级别保留几份,0 表示不用这个级别
Rsync 重试(Rsync tries)1网络不稳定时可调高
组(Group)users只作用于新创建的备份目录,被备份文件保留原权限
仅输出错误(Error output only)关开启后成功时没有输出,也不发邮件
Rsync 长变量(Rsync long arguments)空留空使用 --delete --numeric-ids --delete-excluded,一般不要改
执行前命令 / 执行后命令空rsnapshot 运行前后执行

保存后,点黄色提示条上的应用。

运行时间是固定的 ​

时间由插件统一写入定时任务,界面不能按任务单独调整:

级别运行时间
每小时每小时第 5 分钟
每日每天 03:30
每周每周一 03:00
每月每月 1 日 02:30
每年每年 1 月 1 日 02:00

想整体前后挪,用环境变量 OMV_RSNAPSHOT_STARTING_HOUR(默认 2),见 环境变量。不要手改生成的 cron 文件,下次应用会被覆盖。保存任务后不会立刻备份,点选中任务的运行(Run)可以马上执行一次。

用前置命令防止「空源」被备份 ​

执行前命令(Pre-exec command)返回非零时,rsnapshot 会中止本次运行(按 rsnapshot 文档的行为)。可以用它检查源所在的盘已挂载:

sh
mountpoint -q <源盘的挂载点>

把 <源盘的挂载点> 换成 存储器 → 文件系统(Storage → File Systems)里源文件系统的挂载点。

备份放哪、有没有口令 ​

  • 放哪:目标文件夹所在的盘必须独立于源盘。同一块盘上的「备份」在盘坏时一起消失。最好再有一份离线或异地的副本,见 异地与云端备份。
  • 没有口令,也没有加密:谁拿到备份盘,谁就能读全部文件。盘要物理保管;盘要离开家,就先考虑 LUKS 加密。
  • 因为备份就是普通目录,权限和 ACL 也要考虑:不要把备份目录通过 SMB 开放写权限,需要浏览时共享为只读。

做一次恢复测试 ​

  1. 点任务的运行,等第一次备份完成。
  2. 在 OMV 的 shell(root)里,把路径换成你自己的,看目录结构:
sh
ls <目标共享文件夹路径>/<源文件系统标签或挂载路径>/<源文件夹相对路径>/

应该能看到 daily.0 等目录;目录里就是源的完整内容。 3. 把某个文件复制到一个临时共享文件夹,内容与原文件一致。恢复要用复制,不要移动或在快照里直接编辑。 4. 对比整个目录是否一致:

sh
diff -rq <源文件夹路径> <目标共享文件夹路径>/<源文件系统标签或挂载路径>/<源文件夹相对路径>/daily.0

刚备份完且源没变化时,应无差异输出。 5. 用 du -sh 对比 daily.0 和 daily.1 的大小,确认没变的文件确实是硬链接,而不是每份都占满空间。第二份之后的增量应该很小。

检查结果 ​

  1. 目标盘上出现了 daily.0(或你启用的最低级别)目录。
  2. 服务 → Rsnapshot 的任务列表里状态正常,邮件里没有错误。
  3. 日志在 /var/log/rsnapshot.log(插件默认值)。
  4. 过几天再看,daily.1、daily.2 逐渐出现,旧的按保留数量被轮转掉。

备份与维护 ​

  • 配置:任务定义在 OMV 数据库里,随配置留底保存;rsnapshot 的配置文件由插件生成,不要手改。
  • 空间:第一份是完整副本,目标盘容量要留够,并监控使用率。
  • 恢复演练:每季度做一次上面的流程,见 恢复演练。
  • 卸载插件:已有的备份目录保留在目标盘上,可以继续用文件管理器访问。

常见问题 ​

设了每日备份,但目录里只有最新的一份。 前几天备份还没积累够;每个级别只保留设置的份数。

目标盘空间涨得很快。 源里有大量每天都变的大文件(数据库、虚拟机镜像、下载目录),它们每天都会产生一份新副本;把它们排除,或改用别的方案。

备份总是失败。 看邮件和日志,常见原因是源盘未挂载、目标盘写满、目标文件系统不支持硬链接。

参考资料 ​

OpenMediaVault 非官方中文使用指南,与 openmediavault 项目及其开发者无隶属关系。