MCDR2Restic
MCDR2Restic 是一个 MCDReforged 插件,用于在服务端正常运行时定时调用 restic 备份指定目录。
此readme正要重构,可能含有过时信息
前置要求 / Prerequisites
本项目负责调用 restic。默认配置下,如果 MCDR 工作目录找不到 restic,则会自动下载对应系统的 restic ,非默认目录该功能不生效
在使用本项目之前,请先了解 restic 的基本原理及配置方法,并确保能够独立使用 restic。 restic的使用方法已经超出此文档范围(restic手册)。大部分备份功能均需要基础的restic知识。Restic 是一款快速、高效且安全的开源备份工具,其去重备份功能尤为适合与MC服务器使用,可大幅减小备份体积。
虽然本插件默认配置会自动处理restic的安装,但仍然建议学习restic使用方法和高级配置,你会用上的。
语言 中文| English
本项目支持中文和英语,跟随MCDR语言
This project supports both Chinese and English, following the MCDR language conventions.
功能
- 定时调用 restic 备份
- 可中断当前备份任务
- 自动下载restic
- 支持 OneBot QQ 通知和 Discord Webhook 通知
- 中英文消息和配置注释
- 无人游玩跳过正常备份:触发时执行一次
list,并结合 join/left 事件判断 - 支持强制备份调度:不受玩家活动感知影响,默认关闭
- 配置安全检查:本地 restic 仓库不能位于备份源目录内,避免仓库被备份进自身
- 自动化,安全且简单的快照恢复
安装
快速开始:将插件放入
mcdr的plugins目录然后!!MCDR reload all即可以默认配置自动运行
-
将
MCDR2Restic.mcdr放入 MCDR 的plugins/。 -
Python 依赖声明在包内根目录的
requirements.txt,由 MCDR 处理:PyYAML>=6.0websocket-client>=1.8.0
OneBot 通知使用的依赖包名是
websocket-client,Python 导入名是websocket。如果误装了另一个同名包导致websocket.WebSocketApp不存在,插件会给出提示如果 MCDR 依赖安装失败,请修复 MCDR 使用的 Python 环境后重载;如果误装了错误的
websocket包,需要从该环境中移除它。在国内网络环境下,如果 MCDR 安装依赖下载失败,请给 MCDR 使用的 Python/pip 配置 PyPI 镜像或代理后重试。
-
启动/重载 MCDR 后,如果
config/mcdr2restic/config.yml不存在,插件会自动生成一份适配当前系统的示例配置。注释语言会跟随 MCDR 当前语言:中文使用中文注释,其他语言使用英文注释。在 Windows 上首次生成配置时,示例会自动改为
.\restic.exe、.\restic-repo、.\server\world这类路径,并使用 YAML 单引号避免反斜杠转义问题。 -
按需修改配置文件,修改完成后执行
!!restic reload
命令
!!restic status查看状态!!restic status p X查看 restic 快照列表第 X 页!!restic restore SNAPSHOT添加整份快照恢复任务!!restic restore SNAPSHOT file /server/path添加单文件恢复任务!!restic restore SNAPSHOT folder /server/path添加文件夹恢复任务!!restic restore list查看恢复任务列表!!restic unrestore ID/all删除某个/所有恢复任务!!restic restore apply执行恢复任务队列!!restic start启用定时备份!!restic stop禁用定时备份,并请求停止当前备份!!restic backup立即备份!!restic reload重载配置
默认命令权限等级为 3,可在配置中修改。
构建与发布
本地执行 pack\build.bat,或运行 python tools/pack_plugin.py --output-dir dist,会生成符合 MCDR 插件目录结构的 .mcdr 归档。归档包含 mcdreforged.plugin.json、requirements.txt、入口包和元数据声明的资源目录。
GitHub Actions 会在每次推送或 Pull Request 时检查并保存构建产物;推送形如 v0.5.0 的 Git 标签时,会自动构建并创建 GitHub Release,发布生成的 .mcdr 文件。
贡献
欢迎提交PR和ISSUE
演示
下面的图片显示了使用Restic备份MC的优势,每个快照都是那个时间点的完整备份,仅占用一半空间

许可证
本项目采用 GNU General Public License v3.0 (GPL-3.0) 许可证发布。
自述文件来源:README.md