Подготовьте согласованную точку
В консоли Minecraft выполните save-all flush, затем stop и дождитесь полного завершения Java. На время копирования отключите автоматический перезапуск службы или панели. Простое закрытие окна не подтверждает, что мир и плагины завершили запись.
Архивируйте папку runtime целиком: запускаемый JAR, server.properties, world, world_nether, world_the_end, plugins и остальные реальные миры. Если MySQL/PostgreSQL находится на другом сервере, этот архив не содержит её таблицы: выполните процедуру выгрузки выбранной БД отдельно. Для SQLite при остановленном процессе сохраните все её файлы вместе, включая оставшиеся -wal/-shm.
Создайте архив в Linux
Пример предполагает сервер в /srv/minecraft и новый, ещё не существующий файл /srv/backups/minecraft-2026-10-07.tar.gz. Замените дату и пути своими. Команды выполняются в терминале Linux пользователем, который читает runtime и пишет в папку копий; архив находится вне исходного каталога, поэтому не включает сам себя.
После создания tar -tzf должен завершиться без ошибки и показать, среди прочего, server.properties, world/level.dat и данные плагинов. sha256sum -c подтверждает читаемость контрольной суммы, а работоспособность будет проверена при восстановлении.
mkdir -p /srv/backups
tar -czf /srv/backups/minecraft-2026-10-07.tar.gz -C /srv/minecraft .
tar -tzf /srv/backups/minecraft-2026-10-07.tar.gz
sha256sum /srv/backups/minecraft-2026-10-07.tar.gz > /srv/backups/minecraft-2026-10-07.tar.gz.sha256
sha256sum -c /srv/backups/minecraft-2026-10-07.tar.gz.sha256Создайте копию на Windows и отдельно снимите SQLite
В Windows 10/11 с доступной командой tar откройте PowerShell. Для runtime C:\Minecraft\server выполните New-Item -ItemType Directory -Force C:\Minecraft\backups, затем tar -czf C:\Minecraft\backups\server-2026-10-07.tar.gz -C C:\Minecraft\server . и Get-FileHash C:\Minecraft\backups\server-2026-10-07.tar.gz -Algorithm SHA256. Сохраните вывод с датой в закрытом журнале копий.
Если нужен онлайн-снимок отдельной SQLite, используйте её CLI, скачав инструменты с sqlite.org, и команду sqlite3 plugins/Example/data.db ".backup /srv/backups/example.db" с реальным путём. SQLite backup снимает согласованную БД; это не заменяет согласованность с одновременно меняющимся Minecraft-миром. Для первой полной копии проще остановить сервер.
Восстановите в новую папку и войдите
В Linux выполните mkdir -p /srv/minecraft-restore, затем tar -xzf /srv/backups/minecraft-2026-10-07.tar.gz -C /srv/minecraft-restore. В Windows создайте C:\Minecraft\restore и распакуйте туда через tar -xzf ... -C C:\Minecraft\restore. Не распаковывайте учебную копию поверх рабочей.
Откройте восстановленный server.properties: для проверки на том же компьютере задайте server-ip=127.0.0.1, server-port=25566, оставьте whitelist. Отключите Geyser и плагины рабочих платежей/уведомлений, чтобы копия не заняла их порты и не писала в production-БД. Запустите сохранённым JAR и соответствующей Java из папки restore; войдите на localhost:25566, проверьте старые блоки, инвентарь, баланс и права. Штатно перезапустите эту копию и повторите вход.
Выберите точку, которую хотите восстановить
Резервная копия должна отвечать на конкретный вопрос: что будет потеряно, если диск сервера исчезнет сейчас? Для небольшого сообщества удобно начинать с полной копии после штатной остановки. В ней один согласованный момент для миров, прав и экономики. Позднее можно оптимизировать длительность, сохранив понятный контракт восстановления.
Заведите перечень каталогов и внешних служб. Например: world, world_nether, world_the_end, plugins с изменяемыми данными, конфигурация, список JAR и база сайта. Названия миров могут быть другими; многомировый плагин создаёт собственную структуру. Проверяйте фактический каталог runtime и символьные ссылки, а не копируйте только знакомое имя world из учебника.
SQLite требует отдельного внимания
У работающей SQLite с WAL рядом с основным файлом есть дополнительное состояние. Случайное копирование только database.db способно пропустить последние записи. Используйте штатный SQLite backup либо копируйте после корректного закрытия соединений. Само наличие большого файла не доказывает согласованность таблиц. Для внешней БД предусмотрите её собственную процедуру и права восстановления.
Уникальные операции и журнал выдачи относятся к прогрессу так же, как мир и инвентарь. Данные и награды плагина.
Простой регламент для небольшого сервера
В объявленное окно закройте вход новых игроков, остановите процесс командой stop и дождитесь завершения. Затем создайте архив состояния и приложите манифест: время, версии, названия миров, размер и контрольную сумму. Сохраните старые артефакты запуска отдельно или в том же закрытом комплекте. Не запускайте очистку до успешной проверки новой копии.
Файл на том же физическом диске помогает при ошибке настройки, но не спасает от отказа диска. Синхронизируемая папка, повторяющая удаления, тоже отличается от истории резервных точек. Продумайте сохранение нескольких поколений и отдельного экземпляра, который рабочий сервер не может незаметно перезаписать.
- Убедитесь, что игровой процесс завершился штатно.
- Сделайте согласованную копию файлов и предусмотренные выгрузки внешних баз.
- Проверьте завершение команды, размер и читаемость архива.
- Передайте экземпляр на независимое хранилище.
- Проверьте контрольную сумму после передачи.
- Выполните восстановление в отдельном каталоге по регламенту.
Восстановление проверяйте как игровую сессию
Разверните архив на отдельном порту без рабочих уведомлений и платежей. Используйте сохранённый runtime и JAR, чтобы не добавить случайное обновление. Запустите мир и зайдите тестовым аккаунтом с известными данными. Проверьте несколько мест, инвентарь, баланс, права, незавершённое задание и игровые рекорды.
Штатно остановите восстановленный экземпляр и откройте его повторно. Если база читалась, но каталог недоступен для записи, это проявится после изменения прогресса. Засеките время подготовки, передачи и запуска: суммарный результат показывает реальный срок восстановления, а не только скорость распаковки. Запишите недостающие файлы и исправьте состав следующих копий.
Независимое развёртывание проверяет тот же комплект состояния в другом окружении. Перенос на новый хост.
Настройте хранение по сроку обнаружения ошибок
Если повреждённая экономика обнаруживается через неделю, одних последних двух ежедневных копий мало. История должна перекрывать обычное время обнаружения неисправностей. Например, храните недавние точки чаще, более старые реже, но проверяйте доступное место. Конкретное число выбирайте по размеру и возможностям, а не по универсальному шаблону.
Автоматизация должна завершаться ошибкой при неполной передаче или пропавшем каталоге. Уведомление об успехе отправляйте после проверки результата. Отдельно проверяйте восстановление по расписанию и после изменения структуры данных. Новая база плагина, не попавшая в список, иначе может месяцами оставаться вне внешне успешных архивов.
Проверка независимого экземпляра
Убедитесь, что внешнее хранилище доступно без основного сервера и его единственного диска. Сохраните способ получения архива и необходимых ключей в закрытом регламенте. Во время учебного восстановления попробуйте обойтись только этим комплектом. Если приходится читать файл со старого хоста, добавьте отсутствующий компонент в список следующей копии.



