CaCl2Backup
Простой мод для бэкапов, поддерживает многопоточность.
- Загрузчики
- Fabric
- Скачиваний на Modrinth
- 526
- Подписчиков на Modrinth
- 4
- версии
- 4
- Обновлён
- 6 августа 20266 авг.
- Опубликован
- в 2026
Коротко о моде
Ставится только на сервер; игрокам ставить не нужно
CaCl2Backup
中文) | English
Комплексный мод для резервного копирования сервера Minecraft, созданный для Fabric.
Возможности
- Три триггера резервного копирования — по интервалу, по расписанию и при остановке сервера, которые можно свободно комбинировать
- Многопоточное сжатие — параллельное сжатие с использованием нескольких потоков для значительно более быстрого резервного копирования
- Автоматическая очистка — автоматическая очистка старых резервных копий после создания новых с ограничениями по количеству и возрасту
- Полное восстановление — полное восстановление сохранения мира из резервных копий
- Система меток — добавление меток к резервным копиям для удобной идентификации (специальные символы автоматически заменяются на подчёркивания)
- Операции по индексу — быстрый выбор резервных копий по номеру индекса без ввода полных имён файлов
- Статус в реальном времени — просмотр статуса резервного копирования, конфигурации и списка резервных копий
- Горячая перезагрузка конфигурации — перезагрузка конфигурации без перезапуска сервера
- Автоперезапуск при восстановлении — опциональный автоперезапуск сервера после восстановления резервной копии
Требования
- Minecraft 26.0+ (серия 26.x)
- Fabric Loader 0.15.0+
- Fabric API
- Java 25+
Установка
- Убедитесь, что установлены Fabric Loader и Fabric API
- Поместите JAR-файл мода в папку
modsвашего сервера - Запустите сервер — мод автоматически создаст файл конфигурации
Справочник команд
Все команды требуют прав оператора и используют префикс /backup.
Основные команды
| Команда | Описание | Пример |
|---|---|---|
/backup create [label] | Создать резервную копию вручную (опциональная метка) | /backup create before_update |
/backup list | Показать список всех доступных резервных копий (с номерами индексов) | /backup list |
/backup status | Показать текущую конфигурацию и статус | /backup status |
/backup reload | Перезагрузить файл конфигурации | /backup reload |
/backup cleanup | Вручную очистить старые резервные копии | /backup cleanup |
Восстановление и удаление
| Команда | Описание | Пример |
|---|---|---|
/backup restore <index/filename> | Восстановить мир из указанной резервной копии | /backup restore 1 |
/backup delete <index/filename> | Удалить указанную резервную копию | /backup delete 2 |
Совет: Используйте /backup list, чтобы посмотреть номера индексов резервных копий, затем используйте индекс напрямую.
Команды конфигурации
| Команда | Описание | Пример |
|---|---|---|
/backup config | Показать все параметры конфигурации | /backup config |
| `/backup config interval []` | Показать/установить интервал резервного копирования | /backup config interval 60 |
| `/backup config maxbackups []` | Показать/установить максимальное количество резервных копий | /backup config maxbackups 20 |
| `/backup config maxage []` | Показать/установить максимальный возраст резервных копий | /backup config maxage 14 |
/backup config autocleanup [<on/off>] | Показать/установить автоматическую очистку | /backup config autocleanup on |
| `/backup config threads []` | Показать/установить количество потоков сжатия | /backup config threads 4 |
/backup config level [<1-9>] | Показать/установить уровень сжатия | /backup config level 6 |
/backup config autorestart [<on/off>] | Показать/установить автоперезапуск после восстановления | /backup config autorestart on |
| `/backup config restartdelay []` | Показать/установить задержку автоперезапуска | /backup config restartdelay 60 |
| `/backup config restartmessage []` | Показать/установить сообщение о перезапуске (плейсхолдер {seconds}) | /backup config restartmessage "Server will restart in {seconds}s..." |
/backup config broadcastrestart [<on/off>] | Показать/установить трансляцию сообщения о перезапуске | /backup config broadcastrestart on |
/backup config trigger | Показать статус всех триггеров | /backup config trigger |
/backup config trigger interval [<on/off>] | Показать/установить триггер по интервалу | /backup config trigger interval on |
/backup config trigger server_stop [<on/off>] | Показать/установить триггер при остановке сервера | /backup config trigger server_stop on |
/backup config trigger schedule [<on/off>] | Показать/установить триггер по расписанию | /backup config trigger schedule on |
/backup config trigger schedule add <HH:mm> | Добавить время в расписание | /backup config trigger schedule add 03:00 |
/backup config trigger schedule remove <HH:mm> | Удалить время из расписания | /backup config trigger schedule remove 03:00 |
/backup config trigger schedule clear | Очистить всё расписание | /backup config trigger schedule clear |
Файл конфигурации
Расположение файла конфигурации: config/cacl2backup.json
{
"backupIntervalMinutes": 30,
"maxBackups": 10,
"compressionThreads": 8,
"compressionLevel": 6,
"autoBackupEnabled": true,
"autoCleanupEnabled": true,
"maxBackupAgeDays": 7,
"backupFolderName": "backups",
"broadcastBackupMessages": true,
"saveOnBackup": true,
"autoRestartAfterRestore": false,
"restartDelaySeconds": 60,
"restoreRestartMessage": "Server will restart in {seconds} seconds to complete restore...",
"broadcastRestoreMessage": true,
"triggers": {
"interval": {
"enabled": true,
"interval_minutes": 30
},
"server_stop": {
"enabled": false
},
"schedule": {
"enabled": false,
"times": ["03:00", "15:00"]
}
}
}Параметры конфигурации
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
backupIntervalMinutes | int | 30 | Интервал авто-бэкапа в минутах (минимум: 1) |
maxBackups | int | 10 | Максимальное количество хранимых бэкапов |
compressionThreads | int | Ядра CPU | Количество потоков сжатия |
compressionLevel | int | 6 | Уровень сжатия (1-9), 1 — самый быстрый с наименьшей степенью сжатия, 9 — самый медленный с наибольшей степенью сжатия |
autoBackupEnabled | boolean | true | Включить автоматические бэкапы |
autoCleanupEnabled | boolean | true | Включить автоматическую очистку старых бэкапов |
maxBackupAgeDays | int | 7 | Максимальный возраст бэкапа в днях |
backupFolderName | String | "backups" | Имя папки для бэкапов |
broadcastBackupMessages | boolean | true | Рассылать сообщения о бэкапах всем игрокам |
saveOnBackup | boolean | true | Сохранять мир перед бэкапом |
autoRestartAfterRestore | boolean | false | Авто-перезапуск сервера после восстановления |
restartDelaySeconds | int | 60 | Задержка авто-перезапуска в секундах (минимум: 10) |
restoreRestartMessage | String | "Server will restart in {seconds} seconds..." | Шаблон сообщения о перезапуске, {seconds} заменяется на задержку |
broadcastRestoreMessage | boolean | true | Рассылать сообщение о перезапуске |
triggers.interval.enabled | boolean | true | Включить триггер бэкапа по интервалу |
triggers.interval.interval_minutes | int | 30 | Интервал бэкапа по интервалу в минутах |
triggers.server_stop.enabled | boolean | false | Включить триггер бэкапа при остановке сервера |
triggers.schedule.enabled | boolean | false | Включить триггер бэкапа по ежедневному расписанию |
triggers.schedule.times | list | [] | Время ежедневных бэкапов (формат HH:mm, например ["03:00","15:00"]) |
Руководство по использованию
Создание бэкапов
Ручной бэкап (рекомендуется перед важными операциями):
/backup create before_major_updateПросмотр списка бэкапов:
/backup listПример вывода:
[CaCl2Backup] Available backups (5):
1. 2024-02-20 10:30:00 [before_update] - 125.3 MB
2. 2024-02-19 22:00:00 [auto] - 124.8 MB
3. 2024-02-19 10:00:00 - 123.5 MB
...Восстановление мира
Внимание: операция восстановления перезапишет текущее сохранение мира!
Просмотрите список бэкапов, чтобы узнать номер по индексу:
/backup listВосстановите по индексу:
/backup restore 1Поведение зависит от конфигурации:
- autoRestartAfterRestore=false (по умолчанию): вручную остановите сервер, чтобы завершить восстановление
- autoRestartAfterRestore=true: мод автоматически перезапустит сервер после указанной задержки
- Мир автоматически заменится при следующем запуске сервера
Настройка поведения авто-перезапуска:
/backup config autorestart on # Включить авто-перезапуск
/backup config restartdelay 60 # Установить задержку 60 секунд
/backup config restartmessage "Server will restart in {seconds} seconds..." # Своё сообщение
/backup config broadcastrestart on # Включить рассылку
### Удаление бэкапов
Удаление по индексу:/backup delete 2
## Триггеры бэкапов
Три независимых триггера, которые можно свободно комбинировать:
| Триггер | По умолчанию | Описание |
|---------|-------------|-------------|
| **Интервал** | Вкл | Автобэкап каждые N минут |
| **Расписание** | Выкл | Бэкап в определённое время ежедневно (например, 03:00 и 15:00) |
| **Остановка сервера** | Выкл | Бэкап при нормальном завершении работы сервера |
| Ручная команда | — | Запуск `/backup create [label]` в любой момент |
Пример конфигурации:
```json
// Включить только остановку сервера + ежедневный бэкап в 3 часа ночи, отключить интервал
"triggers": {
"interval": { "enabled": false },
"server_stop": { "enabled": true },
"schedule": { "enabled": true, "times": ["03:00"] }
}Именование файлов бэкапов
backup_YYYY-MM-DD_HH-mm-ss.zip # Без метки
backup_YYYY-MM-DD_HH-mm-ss_label.zip # С меткойПримеры:
backup_2024-02-20_10-30-00.zipbackup_2024-02-20_10-30-00_before_update.zip
Правила именования меток:
- Разрешены: буквы
a-zA-Z, цифры0-9, подчёркивание_, дефис- - Остальные символы (пробелы, спецсимволы и т.д.) автоматически заменяются на подчёркивание
_
Производительность
Многопоточное сжатие
Мод использует параллельное сжатие, чтобы значительно ускорить бэкапы больших миров:
| Размер мира | 1 поток | 4 потока | 8 потоков |
|---|---|---|---|
| 500 МБ | ~45с | ~15с | ~10с |
| 2 ГБ | ~3мин | ~1мин | ~40с |
| 5 ГБ | ~8мин | ~2.5мин | ~1.5мин |
Сравнение уровней сжатия
| Уровень | Степень сжатия | Скорость | Применение |
|---|---|---|---|
| 1-3 | ~40% | Самая быстрая | Частые бэкапы, SSD-хранилище |
| 4-6 | ~50% | Сбалансированная | Ежедневное использование (рекомендуется) |
| 7-9 | ~55% | Медленнее | Ограниченное место на диске |
Лучшие практики
Регулярная проверка бэкапов
- Запускайте
/backup listрегулярно, чтобы убедиться, что бэкапы создаются - Периодически тестируйте процесс восстановления, чтобы убедиться в работоспособности бэкапов
- Запускайте
Разумная политика хранения
maxBackupsиmaxBackupAgeDaysприменяются одновременно- Рекомендуется: хранить минимум 3-5 рабочих бэкапов
Ручной бэкап перед важными операциями
- Перед обновлением модов
- Перед крупными строительными проектами
- Перед обновлением версии сервера
Внешние бэкапы
- Периодически копируйте папку с бэкапами в другое место
- Рассмотрите синхронизацию бэкапов с облачным хранилищем
Решение проблем
Бэкап не удался
Проблема: Backup failed: World directory not found
Решение: Убедитесь, что папка мира сервера называется world.
Проблемы с миром после восстановления
Проблема: Неполные данные мира после восстановления
Решение:
- Убедитесь, что сервер перезапущен после завершения восстановления
- Проверьте, полный ли файл бэкапа (нормальный размер файла)
- Попробуйте использовать другой файл бэкапа
Проблемы с правами
Проблема: Не удаётся выполнить команды
Решение: Убедитесь, что игроку выдан статус OP (используйте /op player_name).
Информация о разработке
- Автор: CaCl2
- Версия: 1.1.1
- Лицензия: MIT
- Версия Minecraft: 26.0+ (серия 26.x)
- Версия Fabric API: 0.146.1+
Список изменений
1.1.1
- Исправление — Автоочистка старых бэкапов не работала (десериализация Gson не проверяла значения по умолчанию для
maxBackups,maxBackupAgeDaysиautoCleanupEnabled, из-за чего автоочистка молча отключалась при миграции со старых конфигов) - Исправление — Логика очистки
else ifприводила к тому, что удаление по количеству и по возрасту мешали друг другу; переписано с независимыми проверками, чтобы сохранялось ровноmaxBackupsбэкапов
1.1.0
- Рефакторинг триггеров бэкапа — Три независимых триггера: Интервал, Расписание и Остановка сервера
- Триггеры можно свободно комбинировать, управляются через секцию конфига
triggers - Старые конфиги автоматически мигрируют; существующие настройки интервала сохраняются
- Новые команды триггеров:
/backup config trigger interval/schedule/server_stop - Поддержка нескольких времён ежедневного бэкапа (например,
["03:00","15:00"]) - Синхронный бэкап при завершении работы сервера (с использованием
createBackupSync) - Поддержка версий Minecraft расширена на всю серию 26.x (
>=26.0 <27.0) - Удалена устаревшая
/backup config autobackup, всё объединено подtrigger interval - Исправления безопасности — Защита от обхода путей Zip Slip, фильтрация путей в именах бэкапов, исправление состояния гонки TOCTOU
- Корректность триггера расписания при переходе на летнее время, безопасность конкурентного списка, стандартизация команд
1.0.2
- Переработан процесс восстановления: удалена команда
/backup restarter, авто-перезапуск встроен в/backup restore - Новые параметры конфигурации:
autoRestartAfterRestore,restartDelaySeconds,restoreRestartMessage,broadcastRestoreMessage - Новые команды конфигурации:
/backup config autorestart,/backup config restartdelay,/backup config restartmessage,/backup config broadcastrestart
1.0.1
- Обновлено до Minecraft 26.1.2
- Добавлен workflow релиза на GitHub
- Требование к версии Java поднято до 25+
1.0.0
- Первый релиз
- Многопоточное сжатие
- Запланированные авто-бэкапы
- Автоматическая очистка старых бэкапов
- Полноценное восстановление
- Система меток
- Быстрый выбор по индексу
- Горячая перезагрузка конфигурации
Частые вопросы
Как установить CaCl2Backup?
Установите Fabric под свою версию Minecraft, скачайте CaCl2Backup под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть CaCl2Backup?
У CaCl2Backup есть сборки для Minecraft 26.1–26.2.
Нужен ли CaCl2Backup на сервере?
Ставится только на сервер; игрокам ставить не нужно