
适量备份 (JEB)
备份模组,通过自动和手动备份确保你的世界安全,并带有便捷的游戏内界面来创建、管理和恢复备份。
查看大图
Just Enough Backups 是一个 Fabric 模组,添加了服务端世界备份功能,并提供可在游戏内使用的工作流程。
它支持:
- 完整、部分和差异备份
- 通过命令和 UI 进行手动备份
- 自动计划备份
- 可配置的公开备份/恢复公告
- 按备份数量保留
- 按每个世界的备份总大小保留
- 从备份浏览器准备恢复
- 可配置的客户端 HUD 弹窗,带实时预览
- 并行(多线程)扫描、压缩和恢复提取
- 可选的 Mod Menu 集成
该模组的设计目标是将实际备份逻辑保留在服务端,同时通过客户端 UI 提供管理和配置功能。
功能
备份类型
- 完整:存储世界的完整快照。
- 部分:存储相对于基础备份的更改。
- 差异:存储相对于基础备份的更改,同时与部分备份保持独立的保留桶。
备份之间的依赖关系会被追踪。保留和删除操作会遵循这些依赖关系,因此当较新的部分或差异备份仍依赖它们时,所需的基础备份会被保留。
自动备份
自动备份由每种类型的调度器(FULL、DIFFERENTIAL、PARTIAL)驱动,并可配置为:
- 根据每种备份类型配置的间隔独立运行
- 在自动备份开始前发送可选的公开警告
- 自上次备份以来没有玩家在线时暂停
- 在服务器启动时运行
- 在服务器停止时运行
公开公告可以发送到聊天栏、发送到动作栏,或禁用。
保留策略
可以同时以两种方式配置保留:
- 基于数量的保留
- 保留最新的
X个完整备份 - 保留最新的
X个部分备份 - 保留最新的
X个差异备份
- 保留最新的
- 每个世界的空间上限
- 可选地硬性限制一个世界备份文件夹的总大小
- 应用于最终发布的备份集
- 遵循依赖链
如果即使删除了所有允许删除的备份后,新备份仍会超过配置的空间上限,则创建会失败,而不是发布一个无效的最终状态。
性能:并行处理
备份和恢复使用多个工作线程来加速大型世界:
- 扫描 / 哈希:世界快照扫描在
threadCount个线程上运行(最多每个 CPU 核心一个),并行读取和哈希文件 - 压缩:ZIP 归档使用并行压缩写入
- 恢复提取:备份 ZIP 文件在
threadCount个线程上提取
线程数由配置中的 threadCount 控制,可设置为 1 到最大 CPU 线程数之间(默认:CPU 核心数减二)。较低的值会降低 CPU 使用率;较高的值会加速大型世界。
备份管理 UI
备份浏览器包括:
- 刷新
- 创建备份
- 重命名备份
- 删除备份
- 恢复备份
- 依赖感知的内联详情
- 搜索/过滤
手动创建备份支持从命令行和 UI 自定义文件名。
配置 UI 和弹窗预览
配置屏幕公开以下内容:
- 备份模式和调度器选项
- 保留规则
- 权限等级
- 完整性模式
- 备份目录和临时备份目录
- 排除路径
- 弹窗文本、颜色、频道和布局
弹窗预览屏幕让你在保存前移动并预览 HUD 状态。
在专用服务器上,配置屏幕仅在客户端生效:它显示 HUD 和 Preview 选项卡(这些选项卡仅本地应用于弹窗),服务器设置需在服务器的 config/justenoughbackups.json 文件中编辑,然后执行 /jeb config reload。在单人游戏中,整个配置是共享的,并可从屏幕中编辑。
命令
根命令是:
/jeb
可用命令:
/jeb now
/jeb now <name>
/jeb create full
/jeb create full <name>
/jeb create partial
/jeb create partial <name>
/jeb create differential
/jeb create differential <name>
/jeb list
/jeb next
/jeb restore <backup>
/jeb config reload
注意:
<name>是可选的,经过清理后会成为实际的.zip文件名。<backup>是可见的备份名称,带或不带.zip后缀。Tab 补全会建议可见名称。- 恢复会异步准备,然后服务器会关闭,以便在下次启动时安全地应用恢复。
/jeb next显示一个多计划摘要,展示所有已配置备份类型的剩余时间和准确执行时间戳,并按临近程度排序。- 命令访问遵循配置的权限等级。
默认按键绑定
客户端按键绑定:
B:打开备份管理N:打开配置屏幕
这些是常规的 Minecraft 按键绑定,可以在“控制”中更改。
配置
该模组将其配置文件写入:
config/justenoughbackups.json
主要配置区域:
backupModeautomaticBackupsEnabledpauseAutomaticBackupsWithoutPlayersbackupOnServerStartbackupOnServerStopautomaticIntervalMinutesautomaticBackupWarningEnabledautomaticBackupWarningMinutescommandPermissionLevelmessageChannelintegrityModeminimumFreeSpaceReserveMbthreadCountbackupDirectorytempBackupDirectoryexcludedPathsretentionfullincrementaldifferentialmaxTotalSizeMb
popup
backupDirectory 可以是相对于游戏目录的路径,也可以是绝对路径。
tempBackupDirectory 控制备份 ZIP 在被移动到 backupDirectory 之前压缩到的位置。它可以是相对于游戏目录的路径,也可以是绝对路径。将其留空以在备份目录内压缩(默认)。当备份存储在缓慢或网络驱动器上时,建议将其指向本地驱动器,因为这样只会将完成的 ZIP 传输到备份位置。
excludedPaths 使用相对于世界根目录的路径。文件夹条目会排除该完整子树,而文件条目只会排除该特定文件。
threadCount 控制并行扫描、压缩和恢复提取,并被限制在 1 和 CPU 线程数之间。
示例:
voxy
voxy/cache.db
在创建备份之前,该模组还会检查备份目标文件系统上的可用磁盘空间。检查是保守的,并要求:
(current world size * 2) + minimumFreeSpaceReserveMb
如果该空间不可用,备份创建会在写入临时 ZIP 之前中止。
备份命名
手动备份支持自定义名称:
- 通过命令:
/jeb now My backup - 通过备份 UI 中的创建对话框
如果未提供自定义名称,该模组会使用基于类型和时间戳的自动命名方案。
重命名使用与手动创建相同的清理规则,以保持命名行为一致。
许可证
本项目根据 MIT License 授权。
正在加载版本记录…



正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。