MCDR2Restic

Schedule deduplicated incremental restic backups with multi-channel notifications.

management

Installation command

!!MCDR plugin install mcdr2restic

Author

Synced at

...

Last update

...

Latest version

Total downloads

32

Back to catalogue

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 source: README.md