状态与恢复¶
这一页专门讲两件事:
status能看到什么- 恢复任务到底怎么工作
一、status 页面怎么看¶
常用命令:
!!restic status
!!restic status p 2
直接输入 !!restic 也可以。
状态页通常包含什么¶
状态页通常会显示:
- 插件是否启用
- 当前是否有备份在运行
- 当前是否有恢复流程在运行
- Minecraft 是否已经准备好
- 当前在线人数
- 最近一次在线检查结果
- 下一次正常备份时间
- 下一次强制备份时间
- 最近一次备份状态
- 快照列表
快照列表为什么有时会慢一点¶
因为快照列表默认来自 SQLite 缓存,而不是每次都直接重新查仓库。
默认相关配置:
snapshot_cache:
enabled: true
page_size: 10
query_timeout_seconds: 30
database: "snapshots.sqlite3"
第一次查询、缓存失效、或者仓库刚被插件操作过时,插件会刷新缓存,所以会比平时慢一点。
status p <页码> 是什么¶
它是快照翻页。
例如:
!!restic status p 3
表示查看第 3 页快照。
二、恢复不是“立刻执行”¶
MCDR2Restic 的恢复流程是“先入队,再执行”。
你可以把它理解为:
- 先把要恢复的内容一项项加入队列
- 检查队列无误后,再统一执行
这能降低误操作概率。
恢复队列支持哪些任务¶
支持三类,每类都可以选择恢复到指定目录(to <目录>):
- 整份快照恢复
- 单文件恢复
- 单文件夹恢复
1. 整份快照恢复¶
!!restic restore 8f2f9c3d
作用:
- 把快照
8f2f9c3d的“整份恢复”加入队列
不会发生的事:
- 不会立刻停服
- 不会立刻恢复
2. 单文件恢复¶
!!restic restore 8f2f9c3d file /server/whitelist.json
作用:
- 把这个文件恢复任务加入队列
3. 单文件夹恢复¶
!!restic restore 8f2f9c3d folder /server/world/region
作用:
- 把这个文件夹恢复任务加入队列
4. 恢复到指定目录¶
在上面三类任务后面加 to <目录>,可以把内容恢复到服务器之外的目录:
!!restic restore 8f2f9c3d to ./restore-out
!!restic restore 8f2f9c3d to ./restore-out file /server/whitelist.json
!!restic restore 8f2f9c3d to ./restore-out folder /server/world/region
目录写法:
- 相对路径基于 restic 工作目录解析
- 绝对路径允许指向工作目录之外
- 含空格的路径用引号包住
安全限制:
- 不能是 restic 工作目录本身(这种情况请用普通恢复流程)
- 不能位于 restic 仓库内
- 不能位于备份源目录内
路径应该怎么写¶
推荐写法:使用相对 restic 工作目录根的路径,并以 / 开头。
例如:
/server/whitelist.json
/server/world/region
如果你的 working_directory 是 MCDR 根目录,那么上面这种写法最容易理解。
不要这样写¶
下面这些路径不应该写:
../outside- 指向工作目录外部的绝对路径
- 想恢复整份快照时,却写一个空路径
查看当前恢复队列¶
!!restic restore list
你会看到类似这样的列表:
恢复任务
1. [文件] 8f2f9c3d -> /server/whitelist.json
2. [文件夹] 8f2f9c3d -> /server/world/region
3. [整份快照] 8f2f9c3d -> / (恢复到 D:\mc\restore-out)
删除恢复任务¶
删除一个任务:
!!restic unrestore 2
清空全部任务:
!!restic unrestore all
真正执行恢复:restore apply¶
!!restic restore apply
这条命令才是真正开始恢复。
它大致会做这些事:
- 检查恢复队列不为空
- 检查当前没有备份在跑
- 检查 Minecraft 处于可操作状态
- 自动创建一份保护快照
- 请求停止 Minecraft
- 逐条执行恢复任务
- 启动 Minecraft
- 如果恢复阶段出错,尝试回滚到刚才的保护快照
如果队列里的所有任务都带 to <目录>,流程简化为:直接执行恢复,不停服、不创建保护快照。带 to 与不带 to 的任务混在同一个队列时,仍然走完整的停服流程(带 to 的任务恢复到指定目录,其余恢复到工作目录)。
保护快照是什么¶
恢复前,插件会先自动做一份备份,用来兜底。
默认标签:
restore:
pre_restore_backup_tag: "mcdr2restic-pre-restore"
你可以在仓库里通过这个 tag 找到这类快照。
恢复失败时会怎样¶
如果恢复阶段失败,插件会尝试回滚到刚刚创建的保护快照。
这意味着:
- 不是“失败了就什么都不做”
- 插件会尽量把服务器状态拉回恢复前
但你仍然应该理解:
- 回滚依赖那份保护快照本身可用
- 远端仓库异常、锁冲突、路径错误等情况,仍然可能导致恢复或回滚失败
恢复成功后,队列会怎样¶
成功的任务会被自动清空;失败时队列会保留,方便你排查后重试。
三、恢复前你最好确认的事¶
- 你选的快照 ID 是正确的
- 你知道恢复的是整份、单文件还是单文件夹
- 你知道目标路径会覆盖现有文件
- 当前没有人正在进行重要操作
- 你愿意接受停服和重启过程
四、推荐的恢复操作顺序¶
场景:只想恢复白名单文件¶
!!restic status
!!restic restore 8f2f9c3d file /server/whitelist.json
!!restic restore list
!!restic restore apply
场景:只想恢复一个区块文件夹¶
!!restic restore 8f2f9c3d folder /server/world/region
!!restic restore list
!!restic restore apply
场景:整份回滚到某个快照¶
!!restic restore 8f2f9c3d
!!restic restore list
!!restic restore apply
场景:把快照导出到指定目录,不影响服务器¶
!!restic restore 8f2f9c3d to ./restore-out
!!restic restore list
!!restic restore apply
这个流程不会停止服务器,适合取出存档、异地核对等场景。