外观
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://主机:端口/桶名 | 要填访问密钥和秘密密钥 |
| SFTP | user@host:/path/to/repo | root 用户要先配好 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 文件的目录 |
创建存储库
服务 → Restic → 存储库→ 创建。填存储库名称(Repository name,空格会被换成下划线)、口令、类型,以及对应类型的共享文件夹、路径或密钥。- Skip initialisation:只在导入已有仓库时勾选,口令必须与那个仓库一致。
- 保存,点黄色提示条上的应用。选中仓库用工具栏的 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 | 被服务的文件夹,每个客户端可以用自己的子目录 | |
| Port | 8000 | 不能被其他服务占用 |
| 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。
做一次恢复测试
- 存储库页选中仓库,点 View snapshots,确认最新快照的时间。
- 在
存储器 → 共享文件夹(Storage → Shared Folders)新建一个空的共享文件夹,例如restore_test。 - 选中快照,点 Restore,Restore target folder 选
restore_test;要还原部分内容,在 Path filter 里写路径。也可以先勾选 Dry run 预览。 - restic 会在目标下重建快照的原始目录层级。在 OMV 的 shell(root)里对比,把路径换成你自己的:
sh
diff -rq <源目录> <还原出来的对应目录>- 再建一个 Restore Test 任务,让它每周自动做 Dry run,每月做一次 Verify。
- 证明换机也能恢复:在另一台装了 restic 的机器上,用口令和仓库地址执行
restic snapshots和一次小范围还原。
检查结果
- Test connection 通过,
Statistics能显示仓库大小。 - 备份任务跑完后,View snapshots 里出现新快照,Tags 正确。
- 定时任务在计划时间运行,日志里没有错误,需要时收到邮件。
- 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-restic
- omv-extras wiki:openmediavault-restic(2026-09-24 更新)
- restic 官方文档:restic.readthedocs.io