跳转到内容

restic:备份到 S3 与云存储 ​

完成后,共享文件夹按你设的计划自动备份进一个 restic 存储库:数据在离开 OMV 之前就已加密,重复数据去重,每次备份是一个快照;还可以定时做完整性检查和恢复测试,出问题发邮件。

适合谁 ​

  • 备份目标是 S3 兼容存储、Backblaze B2、SFTP,或者任何 rclone 支持的网盘。
  • 想把多台机器备份到同一个仓库,或者在 OMV 上起一个 REST Server 让别的机器备份过来。
  • 想要内置的定时恢复测试。

和 BorgBackup 相比:restic 的云存储支持更直接,恢复测试是内置功能;Borg 的 OMV 到 OMV 抗勒索 Serve 模式更完整,而且 Borg 插件更成熟。

插件很新,而且有不可撤销的操作

  • 影响范围:restic 的口令不可找回,丢了备份就全部作废;Forget(忘记快照)不可撤销,Forget and prune 会立刻释放空间;删除备份任务会同时 forget 该任务源文件夹的所有快照;存储库的定时保留会对仓库里所有主机的快照生效;还原可能覆盖目标文件夹里的同名文件;云存储上读取数据做检查会产生出站流量费用。
  • 前置条件:口令存到 NAS 之外;仓库和源数据不在同一块盘上;云凭据用只允许操作那个存储桶的最小权限。这个插件 8.0 于 2026-10-09 才发布,omv-extras 的软件源里它的发行线标记为 unstable,先拿不重要的数据试用。
  • 怎么回退:停用备份任务即可暂停备份;还原时先恢复到空的共享文件夹,核对后再搬回。

插件信息 ​

项内容
包名openmediavault-restic
来源omv-extras。restic 本体是第三方软件
OMV 8 状态截至 2026-10-22 的 omv-extras synchrony 软件源为 8.0(amd64、arm64),发行线标注 unstable
菜单位置服务 → Restic(Services → Restic):设置、存储库(Repositories)、备份任务(Backup Jobs)、Restore Tests、环境变量、REST Server。后两个页面官方中文未翻译,显示英文
依赖restic、rclone;restic-rest-server 在第一次启用 REST Server 时才安装

先装 omv-extras。

备份放哪、口令怎么保管 ​

存储库类型:

类型路径或 URI 示例说明
本地(Local)选一个共享文件夹最好在另一块盘上
S3 兼容AWS 填桶名;其他填 https://主机:端口/桶名要填访问密钥和秘密密钥
SFTPuser@host:/path/to/reporoot 用户要先配好 SSH 密钥,不支持输入密码
Backblaze B2桶名 或 桶名:路径使用 B2 原生接口,填账号 ID 和应用密钥
REST 服务器http://host:8000/ 或 https://user:password@host:8000/repo/凭据可写在 URL 里,或用环境变量传递
rclone远程名:路径要先在 OMV 的 shell(root)里运行 rclone config

口令:

  • 所有数据在离开服务器前都由 restic 加密;口令丢了,备份就丢了,没有找回办法。
  • 创建后不能在插件里修改口令,要换用 restic 命令行的 restic key passwd。
  • 存进密码管理器和离线副本,不要只放在 OMV 上。插件会把口令保存在 OMV 配置里供定时任务使用,所以备份 config.xml 时也要当作机密。
  • 云访问密钥同样保存在 OMV 配置里,用专用的最小权限密钥。

安装 ​

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

配置与使用 ​

设置 ​

服务 → Restic → 设置:

字段说明
Cache directory本地缓存,默认 /var/cache/restic,加速操作,远程仓库尤其明显
Exclude patterns对每个备份任务都生效的排除规则,每行一条,# 开头是注释
Exclude cache directories跳过含有 CACHEDIR.TAG 文件的目录

创建存储库 ​

  1. 服务 → Restic → 存储库 → 创建。填存储库名称(Repository name,空格会被换成下划线)、口令、类型,以及对应类型的共享文件夹、路径或密钥。
  2. Skip initialisation:只在导入已有仓库时勾选,口令必须与那个仓库一致。
  3. 保存,点黄色提示条上的应用。选中仓库用工具栏的 Test connection 验证连接和口令。

存储库页的工具栏还有 View snapshots、Unlock(清除中断留下的锁)、Statistics、Check、Prune。仓库被备份任务或恢复测试使用时不能删除。

定时检查(Scheduled integrity check)在存储库的编辑页里,默认关闭:可选每天 03:00、每周日 03:00 或每月 1 日 03:00 运行 restic check。Read data subset 可以填 5%、1/7 或 500M,额外下载并校验一部分数据;云存储上这会产生出站流量费用,用一个小比例每周跑,或 1/7 每天跑(每次查七分之一)是折中。

创建备份任务 ​

服务 → Restic → 备份任务 → 创建:

字段说明
Enabled默认开
Job name可选名称
Source folders要备份的共享文件夹,可多选,全部进入同一个快照
Repository目标存储库
Tags逗号分隔,例如 daily,offsite
Exclude patterns仅本任务的排除规则,设置页的全局规则同样生效
Time of execution默认每天
Keep last / daily / weekly / monthly / yearly备份后按这个策略清理(restic forget --prune),默认 0 / 7 / 4 / 12 / 0,0 表示不启用该规则。只作用于本任务源文件夹的快照,所以多个任务可以共用一个仓库
Send command output via email、Send email on error only邮件选项,需先配置通知

保存、应用后,用 Run backup now 立刻跑一次。日志在 /var/log/restic/restic.log,也可以在 诊断 → 系统日志(Diagnostics → System Logs)里选 restic。

存储库页还有一个定时保留(Scheduled retention),默认关闭,对仓库里所有主机的快照做 forget,需要时可以用 Only host、Only tag 限定范围。

恢复测试(Restore Tests) ​

服务 → Restic → Restore Tests 会按计划(默认每周)对存储库里的最新快照做恢复测试,失败发邮件:

模式作用
Dry run(默认)只读快照元数据,不写任何数据,很快,适合高频
Verify完整还原并逐文件核对,要读全部数据并占用磁盘空间;还原到所选共享文件夹下的 restic-restoretest-… 子目录,Clean up after verify 默认开启,完成后删除

建议勾选 Send email on error only,备份无法恢复时才会收到告警。需要先配好通知。

让别的机器备份到 OMV:REST Server ​

服务 → Restic → REST Server 让其他机器用 restic 的 rest: 后端备份到这台 OMV:

字段默认说明
Enabled关启用时会安装 restic-rest-server
Shared folder被服务的文件夹,每个客户端可以用自己的子目录
Port8000不能被其他服务占用
Require login开客户端必须用 Users 页里的用户认证
Private repositories关每个用户只能访问以自己用户名命名的路径
Append-only关客户端只能追加快照,不能删除或修改已有数据
TLS enabled / Certificate关用 系统 → 证书 → SSL(System → Certificates → SSL)里的证书提供 HTTPS
  • 要认证就要开 TLS,否则用户名和密码是明文传输。关闭登录意味着能连到端口的人都能读、增、删仓库文件,只在受控网络里这样做。
  • 仅追加能抵御被入侵或被勒索的客户端,但客户端无法自己 forget 或 prune,需要在 OMV 上做清理。
  • 这是把服务暴露到网络,不要映射到公网,见 远程访问。

环境变量 ​

服务 → Restic → 环境变量:给某个存储库或所有存储库附加环境变量,例如 RESTIC_REST_USERNAME 与 RESTIC_REST_PASSWORD(不想把凭据写进 URL 时)、AWS_DEFAULT_REGION、RESTIC_COMPRESSION。

做一次恢复测试 ​

  1. 存储库页选中仓库,点 View snapshots,确认最新快照的时间。
  2. 在 存储器 → 共享文件夹(Storage → Shared Folders)新建一个空的共享文件夹,例如 restore_test。
  3. 选中快照,点 Restore,Restore target folder 选 restore_test;要还原部分内容,在 Path filter 里写路径。也可以先勾选 Dry run 预览。
  4. restic 会在目标下重建快照的原始目录层级。在 OMV 的 shell(root)里对比,把路径换成你自己的:
sh
diff -rq <源目录> <还原出来的对应目录>
  1. 再建一个 Restore Test 任务,让它每周自动做 Dry run,每月做一次 Verify。
  2. 证明换机也能恢复:在另一台装了 restic 的机器上,用口令和仓库地址执行 restic snapshots 和一次小范围还原。

检查结果 ​

  1. Test connection 通过,Statistics 能显示仓库大小。
  2. 备份任务跑完后,View snapshots 里出现新快照,Tags 正确。
  3. 定时任务在计划时间运行,日志里没有错误,需要时收到邮件。
  4. REST Server 已启用时,从另一台机器能用客户端命令访问仓库;没有认证的访问被拒绝。

备份与维护 ​

  • 清理空间:Forget 只移除快照,用 Prune 或 Forget and prune 才会释放空间,后者在大仓库上很慢。
  • 完整性:用上面的定时检查;对云存储注意流量费用。
  • 升级:这个插件还在快速迭代,更新前看 changelog。
  • 仓库的另一份:重要数据可以备份到两个不同的存储库,见 异地与云端备份。
  • 卸载插件:存储库里的数据留在原处;重新导入时要口令。

常见问题 ​

repository is already locked。 另一个操作正在运行,或上次被中断。操作会等待最多 5 分钟;确认没有 restic 进程在运行后,用 Unlock。

Test connection 卡很久。 restic 对不可达的后端会重试几分钟。检查 URI、网络和凭据。

wrong password or no key found。 口令与仓库不匹配;导入已有仓库时填创建它时用的口令。

REST 客户端 401 Unauthorized。 检查用户名、密码,以及用户是否在 Users 页里;开了私有仓库时,路径要以用户名开头;添加用户后要点应用。

删除了文件,空间没变。 运行 Prune。

参考资料 ​

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