Zum Hauptinhalt springen
Zurück zur Kategorie

Spielserver Backup und Wiederherstellung

Spielserver automatisches Backup, Cron-Konfiguration, Remote-Backup mit rsync und Weltdateiverwaltung.

Lesezeit: 12 dk Spielserver-Einrichtung
backupwiederherstellungcronrsyncweltdateispielserver

Inhaltsverzeichnis

Einleitung

Spielserver-Backup ist der wichtigste Schritt zur Vermeidung von Datenverlust. Weltdateien, Spielerdaten, Konfigurationsdateien und Mod/Plugin-Einstellungen sollten regelmäßig gesichert werden. Dieser Leitfaden behandelt automatische Backup-Skripte, Cron-Konfiguration, Remote-Backup mit rsync und Weltdateiverwaltung für verschiedene Spielserver.

Backup-Strategie

3-2-1-Regel

  • 3 Kopien: Original + 2 Backups
  • 2 verschiedene Medien: Lokale Festplatte + Remote-Server
  • 1 extern: Backup an einem anderen Standort

Backup-Typen

TypBeschreibungVorteilNachteil
VollständigSichert alle DateienEinfache WiederherstellungGroße Größe
InkrementellNur geänderte DateienKleine GrößeKomplexe Wiederherstellung
DifferenziellÄnderungen seit letztem VollbackupMittlere GrößeMittlere Komplexität

Automatisches Backup-Skript

Allzweck-Backup

hljs bash
nano ~/backup_gameserver.sh
hljs bash
#!/bin/bash
GAME_NAME=${1:-"gameserver"}
BACKUP_BASE="/home/steam/backups"
DATE=$(date +%Y%m%d_%H%M%S)
RETENTION_DAYS=7
LOG="/home/steam/backup.log"

declare -A SAVE_DIRS
SAVE_DIRS[minecraft]="/home/steam/minecraft/world /home/steam/minecraft/plugins"
SAVE_DIRS[rust]="/home/steam/rustserver/server/rust /home/steam/rustserver/oxide"
SAVE_DIRS[fivem]="/home/steam/fxserver/resources /home/steam/fxserver/server-data"
SAVE_DIRS[vrising]="/home/steam/vrising/save-data"
SAVE_DIRS[satisfactory]="/home/steam/satisfactory/.config/Epic/FactoryServer/Saved/SaveGames"
SAVE_DIRS[pz]="/home/steam/Zomboid/Saves /home/steam/Zomboid/Server"
SAVE_DIRS[enshrouded]="/home/steam/enshrouded/savegame"

BACKUP_DIR="$BACKUP_BASE/$GAME_NAME"
mkdir -p "$BACKUP_DIR"

echo "$(date): Starting $GAME_NAME backup..." >> $LOG

if [ -n "${SAVE_DIRS[$GAME_NAME]}" ]; then
    tar -czf "$BACKUP_DIR/${GAME_NAME}_${DATE}.tar.gz" ${SAVE_DIRS[$GAME_NAME]} 2>/dev/null
    if [ $? -eq 0 ]; then
        SIZE=$(du -h "$BACKUP_DIR/${GAME_NAME}_${DATE}.tar.gz" | cut -f1)
        echo "$(date): Backup successful - $SIZE" >> $LOG
    else
        echo "$(date): ERROR - Backup failed!" >> $LOG
    fi
else
    echo "$(date): ERROR - Unknown game: $GAME_NAME" >> $LOG
    exit 1
fi

find "$BACKUP_DIR" -name "*.tar.gz" -mtime +$RETENTION_DAYS -delete
COUNT=$(find "$BACKUP_DIR" -name "*.tar.gz" | wc -l)
echo "$(date): Cleanup done. Current backup count: $COUNT" >> $LOG
hljs bash
chmod +x ~/backup_gameserver.sh

Automatisches Cron-Backup

Crontab-Konfiguration

hljs bash
crontab -e
hljs cron
# Minecraft alle 4 Stunden sichern
0 */4 * * * /home/steam/backup_gameserver.sh minecraft

# Rust alle 6 Stunden sichern
0 */6 * * * /home/steam/backup_gameserver.sh rust

# Tägliches FiveM-Backup
0 3 * * * /home/steam/backup_gameserver.sh fivem

# Tägliches V Rising-Backup
0 4 * * * /home/steam/backup_gameserver.sh vrising

# Wöchentliches Vollbackup (Sonntag 02:00)
0 2 * * 0 /home/steam/backup_full.sh

Cron-Ausdrucks-Leitfaden

# Minute (0-59) | Stunde (0-23) | Tag (1-31) | Monat (1-12) | Wochentag (0-7)
# * * * * * Befehl

Remote-Backup mit rsync

rsync-Installation

hljs bash
sudo apt install rsync -y

Backup auf Remote-Server

hljs bash
nano ~/remote_backup.sh
hljs bash
#!/bin/bash
REMOTE_HOST="backup.example.com"
REMOTE_USER="backup"
REMOTE_DIR="/backups/gameserver"
LOCAL_DIR="/home/steam/backups"
LOG="/home/steam/remote_backup.log"

echo "$(date): Starting remote backup..." >> $LOG

rsync -avz --delete \
  -e "ssh -p 22 -i /home/steam/.ssh/backup_key" \
  "$LOCAL_DIR/" \
  "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/"

if [ $? -eq 0 ]; then
    echo "$(date): Remote backup successful." >> $LOG
else
    echo "$(date): ERROR - Remote backup failed!" >> $LOG
fi
hljs bash
chmod +x ~/remote_backup.sh
crontab -e
0 5 * * * /home/steam/remote_backup.sh

rsync-Parameter

ParameterBeschreibung
-aArchivmodus (bewahrt Berechtigungen, Daten)
-vAusführliche Ausgabe
-zKomprimierung
--deleteLöscht Dateien, die nicht in der Quelle sind, aus dem Ziel
-eSSH-Verbindungsparameter

Weltdateiverwaltung

Minecraft-Weltdateien

hljs bash
# Weltverzeichnisse
~/minecraft/world/
~/minecraft/world_nether/
~/minecraft/world_the_end/

# Vor Backup speichern
screen -S minecraft -p 0 -X stuff "save-all\n"
sleep 5
screen -S minecraft -p 0 -X stuff "save-off\n"
tar -czf ~/backups/minecraft/world_$(date +%Y%m%d).tar.gz ~/minecraft/world*
screen -S minecraft -p 0 -X stuff "save-on\n"

Rust-Weltdateien

hljs bash
~/rustserver/server/rust/
~/rustserver/server/rust/player.blueprints.5.db
~/rustserver/server/rust/proceduralmap.*.sav

Wiederherstellung

Allgemeine Wiederherstellungsschritte

hljs bash
# 1. Server stoppen
sudo systemctl stop gameserver

# 2. Aktuelle Dateien sichern (Sicherheit)
mv ~/gameserver/save ~/gameserver/save_old

# 3. Backup wiederherstellen
tar -xzf ~/backups/gameserver/gameserver_20250101_120000.tar.gz -C /

# 4. Server starten
sudo systemctl start gameserver

# 5. Logs prüfen
sudo journalctl -u gameserver -f

Spezifische Dateien wiederherstellen

hljs bash
# Backup-Inhalt auflisten
tar -tzf ~/backups/gameserver/gameserver_20250101_120000.tar.gz

# Spezifische Datei extrahieren
tar -xzf ~/backups/gameserver/gameserver_20250101_120000.tar.gz home/steam/gameserver/config.ini

Backup-Überwachung

hljs bash
# Backup-Größen prüfen
du -sh ~/backups/*/

# Neueste Backups auflisten
ls -lht ~/backups/minecraft/ | head -10

# Festplattennutzung prüfen
df -h

Fazit

Regelmäßiges Backup ist ein wesentlicher Bestandteil der Spielserver-Verwaltung. Mit automatischen Backup-Skripten, Cron-Planung und rsync-Remote-Backup können Sie Ihre Daten sicher aufbewahren. Die REXE VDS NVMe SSD-Infrastruktur ermöglicht schnelle Backup- und Wiederherstellungsvorgänge.