Бэкап и восстановление мира Minecraft сервера: полное руководство

Бэкап и восстановление мира Minecraft сервера: полное руководство

Потеря мира на Minecraft сервере, в который игроки вложили сотни часов, это одна из самых болезненных ситуаций для любого администратора. Повреждение файлов, неудачное обновление, гриферство или сбой диска могут уничтожить все за секунды. В этом руководстве мы разберём все способы защиты данных вашего сервера: от простого копирования до полностью автоматизированных решений с удалённым хранением.

Почему бэкапы критически важны

Есть несколько типичных сценариев, когда бэкап спасает сервер: Повреждение мира (corruption). Это может произойти при внезапном отключении сервера, нехватке места на диске или ошибке в плагине. Чанки становятся нечитаемыми, и целый регион мира превращается в пустоту. Гриферство и ошибки игроков. Даже с плагинами защиты территорий бывают ситуации, когда кто-то получает доступ и разрушает постройки. Бэкап позволяет откатить мир до состояния до инцидента. Неудачные обновления. Обновление версии Minecraft, Paper или плагинов может сломать мир. Без бэкапа вы застрянете с повреждёнными данными без возможности отката. Сбой оборудования. Диски выходят из строя. SSD имеют ограниченный ресурс записи. Без внешней копии потеря диска означает потерю всего.

Ручной бэкап: основы

Самый простой способ сделать бэкап -- скопировать папку мира. Перед копированием обязательно остановите сервер или выполните команду save-all и save-off, чтобы избежать копирования файлов в процессе записи.

Копирование через cp

# Остановить автосохранение
screen -S minecraft -p 0 -X stuff "save-off\n"
screen -S minecraft -p 0 -X stuff "save-all\n"
sleep 5
# Копировать мир
cp -r /opt/minecraft/world /opt/backups/world-$(date +%Y%m%d-%H%M%S)
# Включить автосохранение обратно
screen -S minecraft -p 0 -X stuff "save-on\n"

Архивирование через tar

Для экономии места лучше использовать архивирование:

tar -czf /opt/backups/world-$(date +%Y%m%d-%H%M%S).tar.gz 
  -C /opt/minecraft world world_nether world_the_end

Архив с gzip сжимает мир Minecraft примерно в 3-5 раз. Мир размером 2 ГБ станет архивом в 400-600 МБ.

Автоматизация бэкапов

Ручные бэкапы хороши для разовых ситуаций, но для надёжной защиты нужна автоматизация.

Cron

Классический способ -- добавить задачу в crontab:

# Бэкап каждые 6 часов
0 */6 * * * /opt/minecraft/scripts/backup.sh >> /var/log/minecraft-backup.log 2>&1

Systemd Timer

Более современный подход с лучшим логированием:

# /etc/systemd/system/mc-backup.timer
[Unit]
Description=Minecraft World Backup Timer
[Timer]
OnCalendar=*-*-* 00/6:00:00
Persistent=true
[Install]
WantedBy=timers.target
# /etc/systemd/system/mc-backup.service
[Unit]
Description=Minecraft World Backup
[Service]
Type=oneshot
ExecStart=/opt/minecraft/scripts/backup.sh
User=minecraft

Активация:

sudo systemctl enable --now mc-backup.timer

Скрипт бэкапа с ротацией

Хороший скрипт бэкапа должен не только создавать копии, но и удалять старые:

#!/bin/bash
BACKUP_DIR="/opt/backups/minecraft"
MC_DIR="/opt/minecraft"
KEEP_DAYS=7
# Уведомить сервер
screen -S minecraft -p 0 -X stuff "save-off\n"
screen -S minecraft -p 0 -X stuff "save-all\n"
sleep 5
# Создать бэкап
FILENAME="world-$(date +%Y%m%d-%H%M%S).tar.gz"
tar -czf "$BACKUP_DIR/$FILENAME" -C "$MC_DIR" world world_nether world_the_end
# Включить сохранение
screen -S minecraft -p 0 -X stuff "save-on\n"
# Удалить бэкапы старше N дней
find "$BACKUP_DIR" -name "world-*.tar.gz" -mtime +$KEEP_DAYS -delete
echo "[$(date)] Backup created: $FILENAME"

Плагины для бэкапов

Если вы предпочитаете решения без работы с консолью, есть отличные плагины.

DriveBackupV2

Лучший плагин для автоматических бэкапов с загрузкой в облако. Поддерживает Google Drive, OneDrive, Dropbox и FTP. Настройка через конфиг:

# config.yml (DriveBackupV2)
backups:
  backup-list:
    - path: "world"
      format: "%world%-%date%"
      create: true
    - path: "world_nether"
      format: "%world%-%date%"
      create: true
schedule:
  interval: 360  # минут

Плагин сам управляет сохранением, сжатием и загрузкой. Игроки получают уведомление о начале бэкапа.

eBackup

Лёгкая альтернатива, которая создаёт бэкапы по расписанию и загружает на FTP/SFTP. Меньше функций, но проще в настройке.

Удалённые бэкапы

Локальный бэкап не защитит от сбоя диска или проблем с хостингом. Удалённое хранение решает эту проблему.

rsync

Синхронизация с удалённым сервером:

rsync -avz --delete 
  /opt/backups/minecraft/ 
  backup-user@backup-server:/backups/minecraft/

rclone в S3 или Google Drive

rclone работает с десятками облачных провайдеров:

# Настройка (один раз)
rclone config
# Загрузка бэкапа в S3
rclone copy /opt/backups/minecraft/ s3:my-mc-backups/
# Загрузка в Google Drive
rclone copy /opt/backups/minecraft/ gdrive:minecraft-backups/

Для автоматизации добавьте rclone в скрипт бэкапа после создания архива:

# Добавить в конец backup.sh
rclone copy "$BACKUP_DIR/$FILENAME" s3:my-mc-backups/ --progress

Стоимость хранения в S3 минимальна: 10 ГБ бэкапов обойдутся примерно в $0.23 в месяц.

Восстановление из бэкапа

Создать бэкап недостаточно -- нужно уметь его восстановить.

Пошаговое восстановление

# 1. Остановить сервер
screen -S minecraft -p 0 -X stuff "stop\n"
sleep 10
# 2. Переименовать повреждённый мир
mv /opt/minecraft/world /opt/minecraft/world-corrupted-$(date +%Y%m%d)
# 3. Распаковать бэкап
tar -xzf /opt/backups/minecraft/world-20260405-060000.tar.gz 
  -C /opt/minecraft/
# 4. Проверить права
chown -R minecraft:minecraft /opt/minecraft/world
# 5. Запустить сервер
sudo systemctl start minecraft

Частичное восстановление регионов

Если повреждены только конкретные чанки, не нужно восстанавливать весь мир. Файлы регионов хранятся в world/region/ в формате r.X.Z.mca. Можно заменить только повреждённые файлы:

# Заменить конкретный регион
cp /opt/backups/minecraft/world/region/r.0.0.mca 
   /opt/minecraft/world/region/r.0.0.mca

Координаты региона вычисляются по формуле: region_x = floor(chunk_x / 32), region_z = floor(chunk_z / 32).

Тестирование бэкапов

Бэкап, который не проверен, это не бэкап. Регулярно проверяйте целостность:

# Проверить архив
tar -tzf /opt/backups/minecraft/world-20260405-060000.tar.gz > /dev/null
echo $?  # 0 = архив целый

Лучшая практика: раз в месяц разворачивайте бэкап на тестовом сервере и убедитесь, что мир загружается корректно. Это занимает 10 минут, но может сэкономить часы в экстренной ситуации.

Рекомендации по расписанию

Оптимальное расписание зависит от активности сервера:

  • Маленький сервер (до 20 игроков): бэкап каждые 12 часов, хранить 7 дней
  • Средний сервер (20-100 игроков): бэкап каждые 6 часов, хранить 14 дней
  • Большой сервер (100+ игроков): бэкап каждые 2-4 часа, хранить 30 дней
  • Перед обновлениями: всегда делайте дополнительный бэкап вручную Удалённую копию отправляйте минимум раз в сутки.

Восстановление повреждённого мира

Если бэкапа нет, а мир повреждён, есть несколько инструментов для попытки восстановления: Удаление повреждённых чанков. Утилита вроде MCA Selector позволяет найти и удалить повреждённые чанки. Сервер сгенерирует их заново, но постройки в этих чанках будут потеряны. Использование --forceUpgrade. Запуск сервера с флагом --forceUpgrade может исправить некоторые проблемы совместимости после обновления версии. NBT-редакторы. Для точечного восстановления данных можно использовать NBTExplorer или NBT Studio для ручного редактирования файлов уровня.

Защита от DDoS и целостность данных

Отдельно стоит упомянуть ситуацию, о которой многие забывают. DDoS-атака может вызвать повреждение мира, если она приводит к аварийному завершению сервера в момент записи данных на диск. Мы в MineGuard регулярно видим такие случаи: сервер падает под нагрузкой, и часть чанков оказывается повреждена. Наша защита предотвращает подобные ситуации, не допуская вредоносный трафик до сервера и обеспечивая его стабильную работу даже во время атаки.

Заключение

Настройка бэкапов занимает 30 минут, а отсутствие бэкапа может стоить месяцев работы целого сообщества. Начните с простого скрипта и cron, затем добавьте удалённое хранение. Тестируйте бэкапы регулярно. Ваши игроки никогда не узнают о тех катастрофах, которые вы предотвратили, и именно так и должно быть.


Sunucunuzu DDoS Saldırılarından Koruyun

5 dakikada kurulumla ücretsiz koruma. 1 TB bant genişliği dahil.

Ücretsiz Deneyin


İlgili Makaleler