Автоматические бэкапы сервера Minecraft: стратегии и инструменты
Автоматические бэкапы сервера Minecraft: стратегии и инструменты
Потеря мира — это катастрофа для любого проекта. Я видел серверы, которые закрывались после потери недельного прогресса игроков. В этой статье я расскажу о стратегиях бэкапов, инструментах для автоматизации и том, как хранить копии мира эффективно.
Основные стратегии бэкапов
Не существует одной идеальной стратегии. Выбирай в зависимости от размера сервера и доступных ресурсов:
Стратегия 1. Полный бэкап (ежедневный)
Самый надёжный способ — копировать всю папку мира каждый день. Подходит для серверов с размером мира до 10 ГБ.
# Пример простого скрипта на bash
tar -czf /backups/world_$(date +%Y-%m-%d).tar.gz /home/minecraft/world
Стратегия 2. Инкрементальный бэкап
Сохраняются только изменения с момента последнего бэкапа. Экономит место (до 80% на активных серверах), но сложнее в восстановлении.
# Используем rsync для инкрементального копирования
rsync -av --link-dest=/backups/latest /home/minecraft/world /backups/inc/$(date +%Y-%m-%d_%H-%M)
Стратегия 3. Бэкап через плагин (CoreProtect + автоматический экспорт)
CoreProtect хранит историю изменений блоков. Настрой автоматический экспорт базы данных каждую ночь через cron:
# Экспорт базы CoreProtect
0 3 * * * sqlite3 /plugins/CoreProtect/database.db .dump > /backups/coreprotect_$(date +%Y-%m-%d).sql
Инструменты для автоматизации бэкапов
- rsync — синхронизирует папки с минимальной нагрузкой. Идеален для инкрементальных бэкапов.
- BorgBackup — создаёт дедуплицированные, сжатые и зашифрованные бэкапы. У меня занимает на 60% меньше места, чем tar.
- Duplicacy — умеет хранить бэкапы в облаке (Google Drive, S3, Dropbox) с автоматическим шифрованием.
- Плагин SimpleBackup — делает бэкап прямо из сервера (можно настроить в config.yml). Подходит для не-технических администраторов.
Настройка регулярных бэкапов через cron
Вот мой личный скрипт для автоматических бэкапов с ротацией:
#!/bin/bash
# backup.sh
WORLD_DIR="/home/minecraft/world"
BACKUP_DIR="/backups/minecraft"
DATE=$(date +%Y%m%d_%H%M)
# Останавливаем сервер на 10 секунд, чтобы бэкап был консистентным
screen -S minecraft -X stuff "say Сервер остановлен на 10 секунд для бэкапа^M"
screen -S minecraft -X stuff "save-off^M"
screen -S minecraft -X stuff "save-all^M"
sleep 10
# Создаём бэкап
tar -czf $BACKUP_DIR/world_$DATE.tar.gz $WORLD_DIR
# Включаем сохранения
screen -S minecraft -X stuff "save-on^M"
screen -S minecraft -X stuff "say Бэкап завершён!^M"
# Удаляем бэкапы старше 7 дней
find $BACKUP_DIR -name "world_*.tar.gz" -mtime +7 -delete
Добавь его в cron: 0 5 * * * /home/minecraft/backup.sh (в 5 утра каждый день).
Где хранить бэкапы
- На том же VPS — быстро, но если сервер упадёт, бэкапы тоже могут исчезнуть.
- На отдельном облачном хранилище (S3, Wasabi, Google Cloud) — надёжно, но платно (около $0.01/ГБ в месяц).
- На втором VPS — можно настроить rsync на удалённую машину раз в сутки.
- На локальной машине — через SFTP выгружай к себе на компьютер (для небольших миров).
Тестирование бэкапов
Самый важный шаг, который все пропускают: проверяй, что бэкап восстанавливается. Раз в месяц:
- Разверни бэкап на тестовом сервере.
- Запусти сервер и проверь, что мир загружается.
- Проверь, что инвентари игроков сохранены.
- Если что-то сломалось — исправь скрипт до потери настоящего мира.
Что ещё можно бэкапить
- Базу данных плагинов (если используешь MySQL для экономики или привилегий).
- Конфиги плагинов — их изменения часто теряются при краше.
- Логи сервера — полезны для анализа атак и багов.
Храни бэкапы в трёх местах: на сервере, в облаке и на внешнем диске. Только так можно гарантировать безопасность.
💬 Комментарии (0)
🔒 Войдите, чтобы оставить комментарий
😊 Пока нет комментариев. Будьте первым!