So sicherst du einen FiveM-Server: Datenbank, Ressourcen und txData

Sichere deinen FiveM-Server: mysqldump oder HeidiSQL für die Datenbank, Ressourcen, server.cfg und txData, geplante Sicherungen, Kopien außerhalb des Servers und wie du wiederherstellst.

Eine Festplatte stirbt, ein schlechtes Skript löscht eine Tabelle, ein Host schließt dein Konto oder du löschst den falschen Ordner. Wenn deine einzige Kopie des Servers auf dem Server ist, fängst du bei Null an und deine Spieler verlieren ihre Charaktere. Diese Anleitung behandelt, was zu sichern ist, wie man es automatisiert und wie man wiederherstellt.

Was zu sichern ist

Was Warum Wo
Datenbank Charaktere, Geld, Fahrzeuge, Inventare, alles was Spieler besitzen MariaDB oder MySQL
server.cfg Deine Servereinstellungen und die Startreihenfolge Server-Datenordner
resources-Ordner Deine Skripte und deren Konfigurationsdateien Server-Datenordner
txData txAdmin-Einstellungen, Admin-Konten, Ban-Verlauf und das Aktionsprotokoll der txData-Ordner

Die FiveM-Server-Binärdateien (Artefakte) brauchen keine Sicherung. Du kannst sie erneut herunterladen, siehe Aktualisiere Server-Artefakte.

Achtung: server.cfg kann deinen Lizenzschlüssel, Datenbankpasswort und Discord-Token enthalten. Halte Sicherungen privat und poste sie nie an einem öffentlichen Ort.

Sichere die Datenbank

Mit mysqldump

mysqldump wird mit MariaDB und MySQL mitgeliefert. Ersetze den Benutzer und den Datenbanknamen mit deinen:

bash
mysqldump -u root -p --single-transaction --routines --databases es_extended > backup.sql
  • --single-transaction erstellt eine konsistente Kopie von InnoDB-Tabellen ohne den Server zu sperren.
  • --routines schließt gespeicherte Prozeduren ein.
  • --databases fügt die CREATE DATABASE-Anweisung hinzu, so dass eine Wiederherstellung einfacher ist.

Gib das Datum in den Dateinamen ein, so dass Kopien sich nicht überschreiben:

bash
mysqldump -u root -p --single-transaction --routines --databases es_extended > "backup_$(date +%F).sql"

Um es ohne Passwort-Eingabeaufforderung auszuführen, speichere die Anmeldedaten in einer geschützten Optionsdatei (wie ~/.my.cnf unter Linux) statt sie in den Befehl einzugeben.

Mit HeidiSQL

Wenn du ein grafisches Werkzeug bevorzugst:

  1. Verbinde dich mit dem Server in HeidiSQL.
  2. Klicke mit der rechten Maustaste auf die Datenbank und wähle Datenbank als SQL exportieren.
  3. Wähle alle Tabellen, wähle Erstelle für die Struktur und Einfügen für die Daten und wähle eine Zieldatei.
  4. Klicke Exportieren.

Mache dies von Hand vor riskanten Änderungen. Für regelmäßige Sicherungen, automatisiere es.

Sichere Dateien

Komprimiere die Ordner, die du behalten möchtest:

bash
tar -czf server_files_$(date +%F).tar.gz server.cfg resources txData

Unter Windows kann PowerShell das gleiche tun:

powershell
Compress-Archive -Path server.cfg, resources, txData -DestinationPath "server_files_$(Get-Date -Format yyyy-MM-dd).zip"

Führe es aus dem Ordner aus, der diese Gegenstände enthält, oder verwende vollständige Pfade. Überspringe Cache-Ordner, wenn deine Sicherungen zu groß werden; sie werden neu erstellt, wenn der Server läuft.

Plane es

Linux: cron

Öffne die Crontab mit crontab -e und füge eine Zeile hinzu. Dies führt den Dump jeden Tag um 04:00 aus:

cron
0 4 * * * mysqldump --single-transaction --routines --databases es_extended > /backups/db_$(date +\%F).sql

In crontab muss % als \% escaped werden. Der Benutzer, der es ausführt, braucht Zugriff auf die Datenbank durch eine Optionsdatei, wie oben beschrieben.

Windows: Task Scheduler

Speichere deine Sicherungsbefehle in einem backup.ps1-Skript, dann erstelle eine tägliche Aufgabe:

powershell
schtasks /Create /SC DAILY /ST 04:00 /TN "FiveM backup" /TR "powershell -ExecutionPolicy Bypass -File C:\fivem\backup.ps1"

Oder verwende die Task Scheduler App: erstelle eine grundlegende Aufgabe, stelle einen täglichen Auslöser ein und wähle das Skript als Aktion.

Wähle einen Zeitpunkt, wenn wenige Spieler online sind, wie kurz vor deinem geplanten Neustart.

Lösche alte Sicherungen

Sicherungen häufen sich an. Behalte zum Beispiel die letzten 7 täglichen Kopien und ein paar wöchentliche. Eine kleine Bereinigung im Skript reicht aus:

bash
find /backups -name "db_*.sql" -mtime +14 -delete

Halte Sicherungen außerhalb des Servers

Die Regel ist einfach: Eine Sicherung, die auf der gleichen Maschine lebt, ist keine echte Sicherung. Kopiere sie nach jedem Lauf woanders hin:

  • einen anderen Server oder einen Home-Computer mit scp oder rsync über SSH,
  • einen Cloud-Speicherdienst mit einem Werkzeug wie rclone,
  • eine andere Festplatte, die nicht Teil der gleichen Maschine ist, als Minimum.

Teste, dass die Kopie ankommt. Überprüfe das Ziel ab und zu.

Stelle eine Sicherung wieder her

Eine Sicherung, die du nie wiederhergestellt hast, ist eine Hoffnung, keine Sicherung. Versuche eine Wiederherstellung auf einer Test-Datenbank jetzt.

  1. Stoppe den FiveM-Server von txAdmin, so dass nichts während der Wiederherstellung geschrieben wird.
  2. Stelle die Datenbank wieder her:
bash
mysql -u root -p < backup.sql

Da der Dump --databases verwendete, erstellt er die Datenbank selbst neu. Wenn du mit HeidiSQL exportiert hast, wähle SQL-Datei ausführen im Werkzeug und wähle die Datei.

  1. Lege server.cfg und den resources-Ordner zurück und den txData-Ordner, falls txAdmin verloren ging.
  2. Starte den Server und beobachte die Konsole auf Datenbankfehler. Siehe oxmysql Verbindungsfehler, falls die Verbindung fehlschlägt.

Die Wiederherstellung überschreibt aktuelle Daten in diesen Tabellen, daher tue es absichtlich und halte zuerst eine Kopie des aktuellen Zustands.

Vor jeder Änderung

Bevor du ein Framework aktualisierst, ein Skript hinzufügst, das Tabellen bearbeitet, oder eine SQL-Datei aus einem Download laufen lässt, nimm einen schnellen manuellen Dump. Es dauert Sekunden und spart eine Menge Ärger.

Checkliste

Symptom Behebung
Überhaupt keine Sicherung Führe mysqldump heute aus, dann plane es
Dump fragt nach Passwort in einem geplanten Job Verwende eine Optionsdatei mit den Anmeldedaten
Sicherungen nur auf dem Server Kopiere sie auf einen anderen Computer oder Speicher
Festplatte füllt sich auf Lösche Sicherungen älter als deine Aufbewahrungsfrist
Verlorene txAdmin-Einstellungen oder Admins Stelle den txData-Ordner wieder her
Wiederherstellung schlägt beim Import fehl Überprüfe, dass die SQL-Datei vollständig ist und der Datenbankbenutzer die Rechte hat
Unsicher, ob die Sicherung funktioniert Stelle sie auf einer Test-Datenbank wieder her und überprüfe die Tabellen

Kurze Antworten

Was ist das Wichtigste, das man sichern sollte?

Die Datenbank. Charaktere, Geld, Fahrzeuge und Inventare leben alle dort, und du kannst sie nicht neu erstellen. Ressourcen und Konfiguration können neu heruntergeladen oder neu erstellt werden, aber Spielerdaten können nicht.

Wie oft sollte ich sichern?

Sichere die Datenbank mindestens einmal am Tag und vor jedem Update oder großen Skript-Änderung. Ein beschäftigter Server kann es alle paar Stunden laufen lassen.

Reicht eine Sicherung auf der gleichen Maschine aus?

Nein. Ein Festplattenfehler, ein gelöschter Server oder ein Ransomware-Angriff nimmt die Sicherung mit sich. Kopiere Sicherungen auf eine andere Maschine oder einen Speicherdienst.

Scripts ohne dieses Problem

Tebex TemplateEin Premium-Theme ohne Code für deinen Tebex-Shop, komplett im Tebex-Panel anpassbar.Script ansehen →Item Creator V2Erstelle nutzbare Items mit Animationen, Props, Effekten und mehr — ganz ohne Code.Script ansehen →Shop CreatorBau einen Shop in unter einer Minute — Besitzer, Angestellte, Tresore und Überfälle inklusive.Script ansehen →

Weiterlesen