Бэкап и восстановление мира 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
Сколько стоит содержание Minecraft сервера
Полный разбор расходов на Minecraft сервер: хостинг, домен, DDoS-защита, плагины, веб-сайт, реклама, персонал. Таблицы затрат для серверов разного размера и способы сэкономить без потери качества.
CoreProtect: откат грифа и расследование инцидентов на Minecraft сервере
Как поставить CoreProtect, найти грифера через /co lookup и откатить разрушения командой /co rollback без восстановления бэкапа мира.
Velocity vs BungeeCord: почему пора переходить
Подробное сравнение двух прокси для Minecraft: производительность, безопасность и экосистема плагинов. Разбираем, почему Velocity выигрывает по всем фронтам и как мигрировать с BungeeCord без боли.