MCDR2Restic

调用 restic 进行去重增量备份与多通道异步通知。

管理

一键安装指令

!!MCDR plugin install mcdr2restic

作者

数据同步于

...

上次更新

...

最新版本

总下载量

44

返回插件仓库

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 仓库不能位于备份源目录内,避免仓库被备份进自身
  • 自动化,安全且简单的快照恢复

安装

快速开始:将插件放入mcdrplugins目录然后!!MCDR reload all即可以默认配置自动运行

  1. MCDR2Restic.mcdr放入 MCDR 的 plugins/

  2. Python 依赖声明在包内根目录的 requirements.txt,由 MCDR 处理:

    • PyYAML>=6.0
    • websocket-client>=1.8.0

    OneBot 通知使用的依赖包名是 websocket-client,Python 导入名是 websocket。如果误装了另一个同名包导致 websocket.WebSocketApp 不存在,插件会给出提示

    如果 MCDR 依赖安装失败,请修复 MCDR 使用的 Python 环境后重载;如果误装了错误的 websocket 包,需要从该环境中移除它。

    在国内网络环境下,如果 MCDR 安装依赖下载失败,请给 MCDR 使用的 Python/pip 配置 PyPI 镜像或代理后重试。

  3. 启动/重载 MCDR 后,如果 config/mcdr2restic/config.yml 不存在,插件会自动生成一份适配当前系统的示例配置。注释语言会跟随 MCDR 当前语言:中文使用中文注释,其他语言使用英文注释。

    在 Windows 上首次生成配置时,示例会自动改为 .\restic.exe.\restic-repo.\server\world 这类路径,并使用 YAML 单引号避免反斜杠转义问题。

  4. 按需修改配置文件,修改完成后执行 !!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.jsonrequirements.txt、入口包和元数据声明的资源目录。

GitHub Actions 会在每次推送或 Pull Request 时检查并保存构建产物;推送形如 v0.5.0 的 Git 标签时,会自动构建并创建 GitHub Release,发布生成的 .mcdr 文件。

贡献

欢迎提交PR和ISSUE

演示

下面的图片显示了使用Restic备份MC的优势,每个快照都是那个时间点的完整备份,仅占用一半空间 alt text

许可证

本项目采用 GNU General Public License v3.0 (GPL-3.0) 许可证发布。

自述文件来源:README.md