Comment sauvegarder un serveur FiveM : base de données, ressources et txData

Sauvegardez votre serveur FiveM : mysqldump ou HeidiSQL pour la base de données, ressources, server.cfg et txData, sauvegardes planifiées, copies hors serveur et comment restaurer.

Un disque meurt, un mauvais script supprime une table, un hébergeur ferme votre compte, ou vous supprimez le mauvais dossier. Si votre seule copie du serveur est sur le serveur, vous recommencez à zéro et vos joueurs perdent leurs personnages. Ce guide couvre ce à sauvegarder, comment l'automatiser, et comment restaurer.

Ce à sauvegarder

Quoi Pourquoi Où
Base de données Personnages, argent, véhicules, inventaires, tout ce que les joueurs possèdent MariaDB ou MySQL
server.cfg Vos paramètres de serveur et l'ordre de démarrage dossier de données du serveur
Dossier resources Vos scripts et leurs fichiers de configuration dossier de données du serveur
txData Paramètres txAdmin, comptes administrateur, historique des bans et journal des actions le dossier txData

Les binaires serveur FiveM (artifacts) n'ont pas besoin de sauvegarde. Vous pouvez les re-télécharger, voir mise à jour des artifacts serveur FiveM.

Attention : server.cfg peut contenir votre clé de licence, votre mot de passe de base de données et vos tokens Discord. Gardez les sauvegardes privées et ne les postez jamais dans un lieu public.

Sauvegarder la base de données

Avec mysqldump

mysqldump est livré avec MariaDB et MySQL. Remplacez le nom d'utilisateur et le nom de la base de données par les vôtres :

bash
mysqldump -u root -p --single-transaction --routines --databases es_extended > backup.sql
  • --single-transaction prend une copie cohérente des tables InnoDB sans bloquer le serveur.
  • --routines inclut les procédures stockées.
  • --databases ajoute l'instruction CREATE DATABASE, pour qu'une restauration soit plus simple.

Mettez la date dans le nom du fichier, pour que les copies ne se remplacent pas :

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

Pour l'exécuter sans demande de mot de passe, stockez les credentials dans un fichier d'option protégé (comme ~/.my.cnf sur Linux) au lieu de les taper dans la commande.

Avec HeidiSQL

Si vous préférez un outil graphique :

  1. Connectez-vous au serveur dans HeidiSQL.
  2. Cliquez droit sur la base de données et choisissez Exporter la base de données en SQL.
  3. Sélectionnez toutes les tables, choisissez Créer pour la structure et Insérer pour les données, et choisissez un fichier cible.
  4. Cliquez sur Exporter.

Faites cela manuellement avant les changements risqués. Pour les sauvegardes régulières, automatisez-le.

Sauvegarder les fichiers

Compressez les dossiers que vous voulez garder :

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

Sur Windows, PowerShell peut faire la même chose :

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

Exécutez-le depuis le dossier qui contient ces éléments, ou utilisez des chemins complets. Ignorez les dossiers de cache si vos sauvegardes deviennent énormes ; ils sont reconstruits quand le serveur s'exécute.

Le planifier

Linux : cron

Ouvrez crontab avec crontab -e et ajoutez une ligne. Cela exécute le dump chaque jour à 04:00 :

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

Dans crontab, % doit être échappé comme \%. L'utilisateur qui l'exécute a besoin d'accès à la base de données via un fichier d'option, comme décrit ci-dessus.

Windows : Planificateur de tâches

Enregistrez vos commandes de sauvegarde dans un script backup.ps1, puis créez une tâche quotidienne :

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

Ou utilisez l'application Planificateur de tâches : créez une tâche basique, définissez un déclencheur quotidien, et choisissez le script comme action.

Choisissez un moment où peu de joueurs sont en ligne, par exemple juste avant votre redémarrage planifié.

Supprimer les anciennes sauvegardes

Les sauvegardes s'accumulent. Gardez, par exemple, les 7 dernières copies quotidiennes et quelques copies hebdomadaires. Un petit nettoyage dans le script suffit :

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

Garder les sauvegardes en dehors du serveur

La règle est simple : une sauvegarde qui vit sur la même machine n'est pas une vraie sauvegarde. Copiez-la ailleurs après chaque exécution :

  • un autre serveur ou une machine personnelle, avec scp ou rsync via SSH,
  • un service de stockage cloud, avec un outil comme rclone,
  • un disque différent qui ne fait pas partie de la même machine, au minimum.

Testez que la copie arrive. Vérifiez la destination de temps en temps.

Restaurer une sauvegarde

Une sauvegarde que vous n'avez jamais restaurée est un espoir, pas une sauvegarde. Essayez une restauration sur une base de données de test maintenant.

  1. Arrêtez le serveur FiveM depuis txAdmin, pour que rien n'écrive pendant la restauration.
  2. Restaurez la base de données :
bash
mysql -u root -p < backup.sql

Comme le dump a utilisé --databases, il recrée la base de données elle-même. Si vous avez exporté avec HeidiSQL, choisissez Exécuter le fichier SQL dans l'outil et sélectionnez le fichier.

  1. Remettez server.cfg et le dossier resources en place, et le dossier txData si txAdmin a été perdu.
  2. Démarrez le serveur et regardez la console pour les erreurs de base de données. Voir erreurs de connexion oxmysql si la connexion échoue.

La restauration remplace les données actuelles dans ces tables, donc faites-le à dessein et gardez d'abord une copie de l'état actuel.

Avant chaque changement

Avant de mettre à jour un framework, d'ajouter un script qui édite les tables, ou d'exécuter un fichier SQL à partir d'un téléchargement, prenez un dump manuel rapide. Cela prend secondes et économise beaucoup d'ennuis.

Checklist

Problème Solution
Pas de sauvegarde du tout Exécutez mysqldump aujourd'hui, puis planifiez-le
Dump demande un mot de passe dans un travail planifié Utilisez un fichier d'option avec les credentials
Les sauvegardes seulement sur le serveur Copiez-les sur une autre machine ou un stockage
Le disque se remplit Supprimez les sauvegardes plus anciennes que votre période de rétention
Paramètres txAdmin ou administrateurs perdus Restaurez le dossier txData
La restauration échoue à l'import Vérifiez que le fichier SQL est complet et que l'utilisateur de la base de données a les droits
Incertain que la sauvegarde fonctionne Restaurez-la à une base de données de test et vérifiez les tables

Réponses rapides

Quelle est la chose la plus importante à sauvegarder ?

La base de données. Les personnages, l'argent, les véhicules et les inventaires y vivent tous, et vous ne pouvez pas les reconstruire. Les ressources et la configuration peuvent être re-téléchargées ou recréées, mais les données des joueurs ne peuvent pas l'être.

À quelle fréquence dois-je sauvegarder ?

Sauvegardez la base de données au moins une fois par jour, et avant chaque mise à jour ou grand changement de script. Un serveur actif peut l'exécuter toutes les quelques heures.

Une sauvegarde sur la même machine suffit-elle ?

Non. Une défaillance du disque, un serveur supprimé ou une attaque de ransomware emporte la sauvegarde avec lui. Copiez les sauvegardes sur une autre machine ou un service de stockage.

Des scripts sans ce problème

Tebex TemplateUn thème premium sans code pour votre boutique Tebex, entièrement modifiable depuis le panel Tebex.Voir le script →Item Creator V2Créez des items utilisables avec animations, props, effets et plus — sans écrire une ligne de code.Voir le script →Shop CreatorCréez un magasin en moins d’une minute — propriétaires, employés, coffres et braquages inclus.Voir le script →

À lire aussi