Backup i przywracanie świata serwera Minecraft: kompletny poradnik

Backup i przywracanie świata serwera Minecraft: kompletny poradnik

Utrata świata na serwerze Minecraft, w który gracze włożyli setki godzin, to jedna z najbardziej bolesnych sytuacji dla każdego administratora. Uszkodzenie plików, nieudana aktualizacja, griefing albo awaria dysku mogą zniszczyć wszystko w sekundy. W tym poradniku rozłożymy wszystkie sposoby ochrony danych twojego serwera: od prostego kopiowania po w pełni zautomatyzowane rozwiązania z zdalnym przechowywaniem.

Dlaczego backupy są krytycznie ważne

Jest kilka typowych scenariuszy, gdy backup ratuje serwer: Uszkodzenie świata (corruption). Może się to stać przy nagłym wyłączeniu serwera, braku miejsca na dysku albo błędzie w pluginie. Chunki stają się nieczytelne, a cały region świata zmienia się w pustkę. Griefing i błędy graczy. Nawet z pluginami ochrony terytoriów zdarzają się sytuacje, gdy ktoś dostaje dostęp i niszczy budowle. Backup pozwala cofnąć świat do stanu sprzed incydentu. Nieudane aktualizacje. Aktualizacja wersji Minecrafta, Paper albo pluginów może zepsuć świat. Bez backupu utkniesz z uszkodzonymi danymi bez możliwości cofnięcia. Awaria sprzętu. Dyski się psują. SSD mają ograniczoną żywotność zapisu. Bez zewnętrznej kopii utrata dysku oznacza utratę wszystkiego.

Ręczny backup: podstawy

Najprostszy sposób zrobić backup to skopiować folder świata. Przed kopiowaniem koniecznie zatrzymaj serwer albo wykonaj komendę save-all i save-off, żeby uniknąć kopiowania plików w trakcie zapisu.

Kopiowanie przez cp

# Zatrzymaj auto-zapis
screen -S minecraft -p 0 -X stuff "save-off\n"
screen -S minecraft -p 0 -X stuff "save-all\n"
sleep 5
# Skopiuj świat
cp -r /opt/minecraft/world /opt/backups/world-$(date +%Y%m%d-%H%M%S)
# Włącz auto-zapis z powrotem
screen -S minecraft -p 0 -X stuff "save-on\n"

Archiwizacja przez tar

Dla oszczędności miejsca lepiej użyć archiwizacji:

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

Archiwum z gzip kompresuje świat Minecrafta mniej więcej 3-5 razy. Świat o rozmiarze 2 GB stanie się archiwum 400-600 MB.

Automatyzacja backupów

Ręczne backupy są dobre do jednorazowych sytuacji, ale dla niezawodnej ochrony potrzebna automatyzacja.

Cron

Klasyczny sposób - dodać zadanie w crontab:

# Backup co 6 godzin
0 */6 * * * /opt/minecraft/scripts/backup.sh >> /var/log/minecraft-backup.log 2>&1

Systemd Timer

Bardziej nowoczesne podejście z lepszym logowaniem:

# /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

Aktywacja:

sudo systemctl enable --now mc-backup.timer

Skrypt backupu z rotacją

Dobry skrypt backupu powinien nie tylko tworzyć kopie, ale też kasować stare:

#!/bin/bash
BACKUP_DIR="/opt/backups/minecraft"
MC_DIR="/opt/minecraft"
KEEP_DAYS=7
# Poinformuj serwer
screen -S minecraft -p 0 -X stuff "save-off\n"
screen -S minecraft -p 0 -X stuff "save-all\n"
sleep 5
# Utwórz backup
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
# Włącz zapis
screen -S minecraft -p 0 -X stuff "save-on\n"
# Usuń backupy starsze niż N dni
find "$BACKUP_DIR" -name "world-*.tar.gz" -mtime +$KEEP_DAYS -delete
echo "[$(date)] Backup created: $FILENAME"

Pluginy do backupów

Jeśli wolisz rozwiązania bez pracy z konsolą, są świetne pluginy.

DriveBackupV2

Najlepszy plugin do automatycznych backupów z wgrywaniem do chmury. Wspiera Google Drive, OneDrive, Dropbox i FTP. Konfiguracja przez config:

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

Plugin sam zarządza zapisem, kompresją i wgrywaniem. Gracze dostają powiadomienie o starcie backupu.

eBackup

Lekka alternatywa, która tworzy backupy wg harmonogramu i wgrywa na FTP/SFTP. Mniej funkcji, ale prostszy w konfiguracji.

Zdalne backupy

Lokalny backup nie ochroni przed awarią dysku albo problemami z hostingiem. Zdalne przechowywanie rozwiązuje ten problem.

rsync

Synchronizacja ze zdalnym serwerem:

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

rclone do S3 albo Google Drive

rclone działa z dziesiątkami providerów chmurowych:

# Konfiguracja (jednorazowo)
rclone config
# Wgranie backupu do S3
rclone copy /opt/backups/minecraft/ s3:my-mc-backups/
# Wgranie do Google Drive
rclone copy /opt/backups/minecraft/ gdrive:minecraft-backups/

Dla automatyzacji dodaj rclone do skryptu backupu po stworzeniu archiwum:

# Dodaj na koniec backup.sh
rclone copy "$BACKUP_DIR/$FILENAME" s3:my-mc-backups/ --progress

Koszt przechowywania w S3 jest minimalny: 10 GB backupów wyjdzie około $0,23 miesięcznie.

Przywracanie z backupu

Stworzyć backup to za mało - trzeba umieć go przywrócić.

Przywracanie krok po kroku

# 1. Zatrzymaj serwer
screen -S minecraft -p 0 -X stuff "stop\n"
sleep 10
# 2. Zmień nazwę uszkodzonego świata
mv /opt/minecraft/world /opt/minecraft/world-corrupted-$(date +%Y%m%d)
# 3. Rozpakuj backup
tar -xzf /opt/backups/minecraft/world-20260405-060000.tar.gz 
  -C /opt/minecraft/
# 4. Sprawdź uprawnienia
chown -R minecraft:minecraft /opt/minecraft/world
# 5. Uruchom serwer
sudo systemctl start minecraft

Częściowe przywracanie regionów

Jeśli uszkodzone są tylko konkretne chunki, nie trzeba przywracać całego świata. Pliki regionów są przechowywane w world/region/ w formacie r.X.Z.mca. Można zamienić tylko uszkodzone pliki:

# Zamień konkretny region
cp /opt/backups/minecraft/world/region/r.0.0.mca 
   /opt/minecraft/world/region/r.0.0.mca

Współrzędne regionu liczone są wg wzoru: region_x = floor(chunk_x / 32), region_z = floor(chunk_z / 32).

Testowanie backupów

Backup, który nie został sprawdzony, to nie backup. Regularnie sprawdzaj integralność:

# Sprawdź archiwum
tar -tzf /opt/backups/minecraft/world-20260405-060000.tar.gz > /dev/null
echo $?  # 0 = archiwum całe

Najlepsza praktyka: raz w miesiącu rozpakuj backup na serwerze testowym i upewnij się, że świat ładuje się poprawnie. Zajmuje to 10 minut, ale może zaoszczędzić godziny w sytuacji awaryjnej.

Rekomendacje co do harmonogramu

Optymalny harmonogram zależy od aktywności serwera:

  • Mały serwer (do 20 graczy): backup co 12 godzin, trzymać 7 dni
  • Średni serwer (20-100 graczy): backup co 6 godzin, trzymać 14 dni
  • Duży serwer (100+ graczy): backup co 2-4 godziny, trzymać 30 dni
  • Przed aktualizacjami: zawsze rób dodatkowy backup ręcznie Zdalną kopię wysyłaj minimum raz na dobę.

Przywracanie uszkodzonego świata

Jeśli backupu nie ma, a świat jest uszkodzony, jest kilka narzędzi do próby przywrócenia: Usunięcie uszkodzonych chunków. Narzędzie w rodzaju MCA Selector pozwala znaleźć i usunąć uszkodzone chunki. Serwer wygeneruje je od nowa, ale budowle w tych chunkach będą stracone. Użycie --forceUpgrade. Uruchomienie serwera z flagą --forceUpgrade może naprawić niektóre problemy kompatybilności po zmianie wersji. Edytory NBT. Do punktowego przywracania danych można użyć NBTExplorer albo NBT Studio do ręcznej edycji plików poziomu.

Ochrona przed DDoS a integralność danych

Osobno warto wspomnieć sytuację, o której wielu zapomina. Atak DDoS może spowodować uszkodzenie świata, jeśli prowadzi do awaryjnego zakończenia serwera w momencie zapisu danych na dysk. My w MineGuardzie regularnie widzimy takie przypadki: serwer pada pod obciążeniem, a część chunków okazuje się uszkodzona. Nasza ochrona zapobiega podobnym sytuacjom, nie dopuszczając szkodliwego ruchu do serwera i zapewniając jego stabilną pracę nawet podczas ataku.

Zakończenie

Konfiguracja backupów zajmuje 30 minut, a brak backupu może kosztować miesiące pracy całej społeczności. Zacznij od prostego skryptu i crona, potem dodaj zdalne przechowywanie. Testuj backupy regularnie. Twoi gracze nigdy nie dowiedzą się o katastrofach, którym zapobiegłeś, i właśnie tak ma być.


Chroń swój serwer przed atakami DDoS

Darmowa ochrona z konfiguracją w 5 minut. 1 TB ruchu w zestawie.

Wypróbuj za darmo


Powiązane artykuły