
- ESX
Par Luke

Une sauvegarde FiveM récupérable associe la base de données aux ressources et à la configuration correspondantes. Prouvez-le en restaurant cette paire sur un serveur isolé et en vérifiant l'état du joueur après un redémarrage.
Incluez server-data, server.cfg, les permissions, les profils txAdmin nécessaires, les ressources personnalisées et le relevé des versions. Notez les versions des artefacts et des frameworks ainsi que les dépendances externes. Conservez les secrets dans des sauvegardes privées, jamais dans des dépôts publics.
Pour obtenir un ensemble cohérent, prévoyez une maintenance et arrêtez FXServer ainsi que les autres applications qui écrivent dans la base avant l’export final de la base de données et la copie des fichiers. Ne modifiez pas le schéma pendant l’export. Les exemples ci-dessous utilisent MariaDB ; les installations MySQL doivent utiliser les outils et options correspondants de leur éditeur.
Utilisez un compte de sauvegarde dédié avec les privilèges requis par les fonctionnalités de votre base de données. Stockez ses détails de connexion dans un fichier d'options MariaDB privé lisible uniquement par le compte de sauvegarde. Gardez-le en dehors de la racine web et du dépôt.
Le manuel de mariadb-dump explique les limites d'authentification et de snapshot cohérent. --single-transaction fournit un snapshot cohérent pour les tables transactionnelles ; il ne rend pas les tables non transactionnelles cohérentes.
Exécutez ceci en tant qu'utilisateur de sauvegarde autorisé après avoir coordonné les écritures. Remplacez le nom de la base de données et les chemins par votre installation réelle. Le fichier d'options privé doit déjà exister :
#!/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"Ajoutez tous les chemins txAdmin/configuration requis en dehors de server-data à votre ensemble de sauvegarde. Testez la commande sous le même compte et environnement utilisés par cron ou un timer systemd. Alertez en cas de statut de sortie non nul.
Utilisez le chemin réel vers mariadb-dump.exe et un fichier d'options privé. --result-file évite les modifications d'encodage de texte du shell vers le dump :
$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-ListRestreignez les autorisations Windows du répertoire de sauvegarde aux administrateurs de sauvegarde et de récupération. Dans le Planificateur de tâches, utilisez des chemins d'exécution explicites et un compte dédié ; vérifiez son historique et les alertes d'échec.
Reprenez les écritures normales seulement après que l'ensemble de sauvegarde soit complet. Une tâche planifiée réussie est une preuve utile ; une restauration réussie est la vérification qui rend la sauvegarde digne de confiance.





