
- ESX
Von Luke

Ein wiederherstellbares FiveM-Backup koppelt die Datenbank mit den passenden Ressourcen und der Konfiguration. Beweise dies, indem du dieses Paar auf einem isolierten Server wiederherstellst und den Spielerstatus nach einem Neustart überprüfst.
Füge server-data, server.cfg, Berechtigungen, erforderliche txAdmin-Profile, benutzerdefinierte Ressourcen und Versionsaufzeichnungen hinzu. Notiere die Artefakt- und Framework-Versionen sowie externe Abhängigkeiten. Bewahre Geheimnisse in privaten Backups auf, niemals in öffentlichen Repositories.
Für ein konsistentes Paar plane Wartungsarbeiten und stoppe FXServer und andere Anwendungs-Writer vor dem endgültigen Datenbank-Dump und der Dateikopie. Führe während des Dumps keine Schemaänderungen durch. Die folgenden Beispiele verwenden MariaDB; MySQL-Installationen müssen ihre passenden Hersteller-Tools und Optionen verwenden.
Verwende ein dediziertes Backup-Konto mit den für deine Datenbankfunktionen erforderlichen Berechtigungen. Speichere dessen Verbindungsdetails in einer privaten MariaDB-Optionsdatei, die nur vom Backup-Konto gelesen werden kann. Bewahre sie außerhalb des Web-Roots und des Repositorys auf.
Das mariadb-dump-Handbuch erläutert die Authentifizierung und die Grenzen konsistenter Snapshots. --single-transaction erstellt einen konsistenten Snapshot für transaktionale Tabellen; nichttransaktionale Tabellen werden dadurch nicht konsistent.
Führe dies als autorisierter Backup-Benutzer nach der Koordination der Schreibvorgänge aus. Ersetze den Datenbanknamen und die Pfade durch deine tatsächliche Installation. Die private Optionsdatei muss bereits existieren:
#!/usr/bin/env bash
set -euo pipefail
umask 077
stamp=$(date -u +%Y%m%dT%H%M%SZ)
dest="/srv/backups/fivem/$stamp"
install -d -m 0700 "$dest"
mariadb-dump --defaults-extra-file=/etc/fivem/backup.cnf \
--single-transaction --routines --events --triggers \
--databases fivem --result-file="$dest/database.sql"
test -s "$dest/database.sql"
tar -C /srv/fivem -czf "$dest/server-data.tar.gz" server-data
tar -tzf "$dest/server-data.tar.gz" > /dev/null
sha256sum "$dest/database.sql" "$dest/server-data.tar.gz" > "$dest/SHA256SUMS"Füge alle erforderlichen txAdmin/Konfigurationspfade außerhalb von server-data zu deinem Backup-Set hinzu. Teste den Befehl unter demselben Konto und in derselben Umgebung, die von Cron oder einem systemd-Timer verwendet werden. Alarmiere bei einem Exit-Status ungleich Null.
Verwende den tatsächlichen Pfad zu mariadb-dump.exe und eine private Optionsdatei. --result-file verhindert, dass die Shell die Textkodierung des Dumps verändert:
$ErrorActionPreference = "Stop"
$Stamp = (Get-Date).ToUniversalTime().ToString("yyyyMMddTHHmmssZ")
$Destination = "D:\FiveM-Backups\$Stamp"
New-Item -ItemType Directory -Path $Destination | Out-Null
& "C:\MariaDB\bin\mariadb-dump.exe" `
"--defaults-extra-file=D:\FiveM-Private\backup.cnf" `
--single-transaction --routines --events --triggers `
--databases fivem "--result-file=$Destination\database.sql"
if ($LASTEXITCODE -ne 0) { throw "Database dump failed" }
if ((Get-Item "$Destination\database.sql").Length -eq 0) { throw "Empty dump" }
Copy-Item "D:\FXServer\server-data" "$Destination\server-data" -Recurse
Get-FileHash "$Destination\database.sql" | Format-ListBeschränke die Windows-Berechtigungen des Backup-Verzeichnisses auf die Backup- und Wiederherstellungsadministratoren. Verwende im Taskplaner explizite ausführbare Pfade und ein dediziertes Konto; überprüfe dessen Verlauf und Fehlerwarnungen.
Setze normale Schreibvorgänge erst fort, nachdem das Backup-Set vollständig ist. Ein erfolgreicher geplanter Job ist ein nützlicher Beweis; eine erfolgreiche Wiederherstellung ist die Überprüfung, die das Backup vertrauenswürdig macht.





