Just Enough Backups (JEB)
Мод для резервного копирования, который сохраняет ваши миры в безопасности с помощью автоматических и ручных бэкапов, с удобным внутриигровым интерфейсом для создания, управления и восстановления.
- Загрузчики
- Fabric
- Скачиваний на Modrinth
- 8 тыс.
- Подписчиков на Modrinth
- 21
- версий
- 28
- Обновлён
- 17 октября 202617 окт.
- Опубликован
- в 2026
Коротко о моде
Работает и в игре, и на сервере — ставьте, где нужен
config/justenoughbackups.json либо через переменные окружения, которые имеют приоритет и позволяют не хранить секреты в открытом виде на диске. Задайте учётные данные в конфиге сервера или используйте переменные окружения, которые имеют приоритет: - S3: JEB_S3_ACCESS_KEY_ID и JEB_S3_SECRET_ACCESS_KEY - WebDAV: JEB_WEBDAV_USERNAME и JEB_WEBDAV_PASSWORD Используйте HTTPS для удалённых endpoint. Обычный HTTP допускается только для loopback-адресов разработки. Удалённые резервные копии публикуются после загрузки и проверки SHA-256; их каталог содержит метаданные и контрольную сумму. Политика хранения защищает базы, необходимые для цепочек инкрементальных копий. При восстановлении каждый требуемый архив скачивается потоком в изолированное промежуточное хранилище, проверяется его контрольная сумма, затем проверяется восстановленный мир перед подготовкой замены мира. remoteStorage.maxRetries ограничивает число попыток загрузки; неудачная загрузка WebDAV перезапускает сжатие и передачу, а прерванные загрузки не возобновляются между перезапусками процесса. Не размещайте учётные данные в общих или коммитимых файлах конфигурации. ## Возможности ### Типы резервных копий - Полная: создаёт полный снимок всего мира на момент резервного копирования. Базовая копия не требуется, и она служит основой для последующих инкрементальных копий. - Частичная: создаёт инкрементальную копию, содержащую только файлы, изменившиеся с момента самой последней резервной копии любого типа (полной, частичной или дифференциальной). В качестве базы используется эта самая последняя копия. - Дифференциальная: создаёт инкрементальную копию, содержащую только файлы, изменившиеся с момента самой последней полной копии. Дифференциальные копии хранятся в отдельном наборе хранения от частичных, что позволяет применять независимые политики хранения. Зависимости между резервными копиями отслеживаются. Операции хранения и удаления учитывают эти зависимости, поэтому необходимые базовые копии сохраняются, пока от них зависят более новые частичные или дифференциальные копии. ### Автоматические резервные копии Автоматические резервные копии управляются планировщиками по типам (FULL, DIFFERENTIAL, PARTIAL) и могут быть настроены так, чтобы: - работать независимо по заданным интервалам для каждого типа резервных копий - отправлять опциональное публичное предупреждение перед началом автоматического резервного копирования - приостанавливаться, если с момента последней резервной копии не было игроков онлайн - запускаться при старте сервера - запускаться при остановке сервера Публичные объявления можно отправлять в чат, в action bar или отключить. ### Политика хранения Хранение можно настроить двумя способами одновременно: - хранение по количеству - хранить новейшие X полных резервных копий - хранить новейшие X частичных резервных копий - хранить новейшие X дифференциальных резервных копий - ограничение размера на мир - опциональный жёсткий лимит на общий размер папки резервных копий мира - применяется к итоговому опубликованному набору резервных копий - учитывает цепочки зависимостей Если новая резервная копия превысит заданный лимит места даже после удаления всех копий, которые разрешено удалять, создание завершается ошибкой вместо публикации некорректного итогового состояния. ### Производительность: параллельная обработка Резервное копирование и восстановление используют несколько рабочих потоков для ускорения работы с большими мирами: - сканирование / хеширование: сканирование снимка мира выполняется в threadCount потоков (до одного на ядро CPU), файлы читаются и хешируются параллельно - сжатие: ZIP-архив записывается с параллельным сжатием - распаковка при восстановлении: ZIP-файлы резервных копий распаковываются в threadCount потоков Число потоков управляется параметром threadCount в конфиге и может быть задано от 1 до максимального числа потоков CPU (по умолчанию: ядра CPU минус два). Меньшие значения снижают нагрузку на CPU; большие ускоряют работу с крупными мирами. ZIP-сжатие по умолчанию использует DEFLATED, а deflateCompressionLevel управляет уровнем сжатия (1–9, по умолчанию: 6). compressionMethod: "ZSTANDARD" записывает записи ZIP методом 93, а zstdCompressionLevel управляет уровнем (1–22, по умолчанию: 3). И DEFLATED, и ZSTANDARD используют параллельное многопоточное сжатие. Для Zstandard крупные записи выгружаются во временные scratch-файлы, чтобы ограничить потребление памяти. Существующие архивы DEFLATED по-прежнему поддерживаются. Архивы Zstandard требуют встроенного в мод читателя Zstandard и могут не открываться в старых ZIP-утилитах. ### Интерфейс управления резервными копиями Браузер резервных копий включает: - обновление - создание резервной копии - переименование резервной копии - удаление резервной копии - восстановление резервной копии- встроенные детали с учётом зависимостей
- поиск и фильтрация Создание ручной резервной копии поддерживает пользовательское имя файла как из командной строки, так и из интерфейса.
Интерфейс конфигурации и предпросмотр попапа
Экран конфигурации предоставляет:
- режим резервного копирования и параметры планировщика
- настройки удалённого хранилища (выбор провайдера, параметры S3/WebDAV, повторные попытки)
- правила хранения
- уровень разрешений
- режим проверки целостности
- каталог резервных копий и каталог временных резервных копий
- исключённые пути
- метод и уровень сжатия
- минимальный возраст резервной копии при запуске
- текст попапа, цвета, каналы и компоновка Экран предпросмотра попапа позволяет перемещать и просматривать состояние 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Примечания:
- `
необязателен и после очистки становится реальным именем файла.zip`. - `
— видимое имя резервной копии, с суффиксом.zip` или без него. Автодополнение по Tab предлагает видимое имя. - восстановление подготавливается асинхронно, после чего сервер выключается, чтобы восстановление можно было безопасно применить при следующем запуске.
/jeb nextпоказывает сводку по нескольким расписаниям с оставшимся временем и точными моментами выполнения для всех настроенных типов резервных копий, отсортированных по близости.- доступ к командам зависит от настроенного уровня разрешений.
Клавиши по умолчанию
Клиентские привязки клавиш:
B: открыть управление резервными копиямиN: открыть экран конфигурации Это обычные привязки Minecraft, их можно изменить в разделе «Управление».
Конфигурация
Мод записывает файл конфигурации в:
config/justenoughbackups.jsonОсновные разделы конфигурации:
backupModepauseAutomaticBackupsWithoutPlayersbackupOnServerStartbackupOnServerStopautomaticSchedulefull(enabled,intervalMinutes)differential(enabled,intervalMinutes)partial(enabled,intervalMinutes)
automaticBackupWarningEnabledautomaticBackupWarningMinutescommandPermissionLevelmessageChannelintegrityModeincludeSummaryFileminimumFreeSpaceReserveMbthreadCountcompressionMethoddeflateCompressionLevelzstdCompressionLevelstartupBackupThresholdfullMinutespartialMinutesdifferentialMinutes
remoteStorageenabledprovider(S3илиWEBDAV)maxRetries- параметры S3:
s3Endpoint,s3Region,s3Bucket,s3Prefix,s3AccessKey,s3SecretKey - параметры WebDAV:
webDavUrl,webDavPrefix,webDavUsername,webDavPassword
backupDirectorytempBackupDirectoryexcludedPathsexcludeSafetyBackupsFromIncrementalretentionfullincrementaldifferentialmaxTotalSizeMb
popupbackupDirectoryможет быть относительным к каталогу игры или абсолютным путём.tempBackupDirectoryзадаёт, где ZIP-архив резервной копии сжимается перед перемещением вbackupDirectory. Может быть относительным к каталогу игры или абсолютным путём. Оставьте пустым, чтобы сжимать внутри каталога резервных копий (по умолчанию). Указывать локальный диск рекомендуется, когда резервные копии хранятся на медленном или сетевом диске, так как на место хранения резервных копий переносится только готовый ZIP.excludedPathsиспользует пути относительно корня мира. Запись папки исключает всё её поддерево, а запись файла исключает только этот конкретный файл. Примеры:
voxy
voxy/cache.dbexcludeSafetyBackupsFromIncremental не даёт использовать страховочные копии «Old_World restore» как основу для инкрементальных/дифференциальных резервных копий. threadCount управляет параллельным сканированием, сжатием и распаковкой при восстановлении и ограничивается диапазоном от 1 до числа потоков CPU. compressionMethod выбирает между стандартным сжатием ZIP DEFLATED и ZSTANDARD (метод ZIP 93). Оба метода используют параллельное многопоточное сжатие. deflateCompressionLevel задаёт уровень Deflate от 1 (самый быстрый) до 9 (наименьший размер, по умолчанию: 6). zstdCompressionLevel задаёт уровень Zstandard от 1 (самый быстрый) до 22 (ультрасжатие, по умолчанию: 3). startupBackupThreshold задаёт минимальный возраст в минутах для самой последней успешной резервной копии каждого типа, прежде чем запустится резервная копия этого типа при старте. Значение 0 сохраняет текущее поведение. На резервные копии по расписанию и при выключении это не влияет. Перед созданием резервной копии мод также проверяет свободное место на файловой системе назначения. Проверка консервативна и требует:
(current world size * 2) + minimumFreeSpaceReserveMbЕсли такого места нет, создание резервной копии прерывается до записи временного ZIP.
Именование резервных копий
Ручные резервные копии поддерживают пользовательские имена:
- из команд:
/jeb now My backup - из диалога создания в интерфейсе резервных копий Если пользовательское имя не указано, мод использует автоматическую схему именования на основе типа и временной метки. Переименование использует те же правила очистки, что и ручное создание, чтобы поведение именования оставалось единообразным.
Лицензия
Этот проект распространяется под MIT License.
Частые вопросы
Как установить Just Enough Backups (JEB)?
Установите Fabric под свою версию Minecraft, скачайте Just Enough Backups (JEB) под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть Just Enough Backups (JEB)?
У Just Enough Backups (JEB) есть сборки для Minecraft 1.21–26.3.
Нужен ли Just Enough Backups (JEB) на сервере?
Работает и в игре, и на сервере — ставьте, где нужен