Backup To Nas

将存档打包为 ZIP,并通过 SFTP 传输到远程 NAS。

管理

一键安装指令

!!MCDR plugin install backup_to_nas

作者

数据同步于

...

上次更新

...

最新版本

总下载量

37

返回插件仓库

Backup To Nas

English

Backup To Nas 是一个 MCDR 插件,用于将 Minecraft 世界备份到远程 NAS。插件会生成 ZIP 压缩包,并通过 SFTP 传输到目标目录。

功能

  • 按配置备份一个或多个世界并上传压缩包。
  • 按固定间隔自动备份。
  • 手动上传临时目录中已有的 .zip 文件。
  • 查询 SFTP 上传进度。
  • 配置 MCDR 权限等级和 SFTP 连接参数。

安装

插件要求 MCDR 2.10.0 或更高版本,并依赖 Paramiko:

pip install -r requirements.txt

如果 MCDR 通过 pipx 安装,请将 Paramiko 注入 MCDR 环境:

pipx inject mcdreforged paramiko

插件首次加载时会生成:

config/backup_to_nas/config.json

配置

{
    "permissions": {
        "help": 0,
        "make": 3,
        "interval": 3,
        "status": 0,
        "upload": 3
    },
    "interval": "",
    "temp": "./backup_to_nas",
    "turn_off_auto_save": true,
    "server_path": "./server",
    "world_names": ["world"],
    "ignore_session_lock": true,
    "sftp": {
        "host": "192.168.1.100",
        "port": 22,
        "username": "root",
        "password_file": "/etc/mcdr/backup_to_nas/sftp_password",
        "private_key_file": "",
        "remote_dir": "/minecraft-backups",
        "timeout": 30,
        "retry_count": 0,
        "auto_add_host_key": false
    }
}

server_path、temp 和 world_names 用于确定本地世界目录。相对路径相对于 MCDR 工作目录,生产环境建议使用绝对路径。world_names 可以填写多个世界目录。

SFTP 认证方式二选一:

  • password_file 指向只包含密码的文件,文件末尾的换行会被忽略。
  • private_key_file 指向 SSH 私钥文件。

两项不能同时配置。凭据从文件读取,不会直接保存在 JSON 配置中。auto_add_host_key 默认是 false,需要先将 NAS 主机密钥加入运行 MCDR 用户的 known_hosts。只有在明确接受自动信任未知主机的风险时才设置为 true。

retry_count 控制 SFTP 上传失败后的自动重试次数。0 表示不重试,正数表示额外重试的次数,负数表示一直重试,直到上传成功或插件卸载。每次重试间隔 5 秒。

重新连接后会根据远端同名文件的大小从断点继续上传。上传中断时本地 ZIP 会保留,插件启动时会自动重试临时目录顶层的 ZIP,也可以使用 !!btn upload 手动继续上传。

interval 为空表示关闭自动备份,也可以使用 1s、30s、1h 或 1d 等格式。修改配置后重载插件即可生效。

命令

默认命令前缀是 !!btn:

命令作用
!!btn显示帮助信息
!!btn make立即创建并上传一次备份
!!btn interval <interval>设置自动备份间隔,例如 !!btn interval 6h
!!btn interval off禁用自动备份
!!btn status查询当前或最近一次 SFTP 上传状态
!!btn upload上传临时目录顶层已有的 .zip 文件

备份和手动上传不能同时执行。上传失败的 ZIP 文件会保留在临时目录中,可以使用 !!btn upload 重试。

权限

权限值表示执行命令所需的最低 MCDR 权限等级:

等级身份
0所有人
1普通用户
2协助者
3管理员
4所有者

permissions.help、permissions.make、permissions.interval、permissions.status 和 permissions.upload 分别控制对应命令。根命令的 help 权限也会限制子命令访问。

许可证

本项目使用 LGPL-3.0,详见 LICENSE。

备份部分参考了 PermanentBackup。

介绍文本来源:README_CN.md