{"id":162229,"date":"2024-10-11T17:06:13","date_gmt":"2024-10-11T15:06:13","guid":{"rendered":"https:\/\/hifivem.com\/?p=162229"},"modified":"2026-08-09T12:55:27","modified_gmt":"2026-08-09T10:55:27","slug":"comment-sauvegarder-votre-serveur-fivem","status":"publish","type":"post","link":"https:\/\/rpcrate.com\/fr\/how-to-backup-your-fivem-server\/","title":{"rendered":"Comment sauvegarder et restaurer un serveur FiveM"},"content":{"rendered":"<p>Une sauvegarde FiveM r\u00e9cup\u00e9rable associe la base de donn\u00e9es aux ressources et \u00e0 la configuration correspondantes. Prouvez-le en restaurant cette paire sur un serveur isol\u00e9 et en v\u00e9rifiant l'\u00e9tat du joueur apr\u00e8s un red\u00e9marrage.<\/p>\n<h2 id=\"define-one-recovery-point\">D\u00e9finir un point de r\u00e9cup\u00e9ration<\/h2>\n<p>Incluez server-data, server.cfg, les permissions, les profils txAdmin n\u00e9cessaires, les ressources personnalis\u00e9es et le relev\u00e9 des versions. Notez les versions des artefacts et des frameworks ainsi que les d\u00e9pendances externes. Conservez les secrets dans des sauvegardes priv\u00e9es, jamais dans des d\u00e9p\u00f4ts publics.<\/p>\n<p>Pour obtenir un ensemble coh\u00e9rent, pr\u00e9voyez une maintenance et arr\u00eatez FXServer ainsi que les autres applications qui \u00e9crivent dans la base avant l\u2019export final de la base de donn\u00e9es et la copie des fichiers. Ne modifiez pas le sch\u00e9ma pendant l\u2019export. Les exemples ci-dessous utilisent MariaDB ; les installations MySQL doivent utiliser les outils et options correspondants de leur \u00e9diteur.<\/p>\n<h2 id=\"prepare-database-authentication\">Pr\u00e9parer l'authentification de la base de donn\u00e9es<\/h2>\n<p>Utilisez un compte de sauvegarde d\u00e9di\u00e9 avec les privil\u00e8ges requis par les fonctionnalit\u00e9s de votre base de donn\u00e9es. Stockez ses d\u00e9tails de connexion dans un fichier d'options MariaDB priv\u00e9 lisible uniquement par le compte de sauvegarde. Gardez-le en dehors de la racine web et du d\u00e9p\u00f4t.<\/p>\n<p>Le <a href=\"https:\/\/mariadb.com\/docs\/server\/clients-and-utilities\/backup-restore-and-import-clients\/mariadb-dump\">manuel de mariadb-dump<\/a> explique les limites d'authentification et de snapshot coh\u00e9rent. --single-transaction fournit un snapshot coh\u00e9rent pour les tables transactionnelles ; il ne rend pas les tables non transactionnelles coh\u00e9rentes.<\/p>\n<h2 id=\"linux-example\">Exemple Linux<\/h2>\n<p>Ex\u00e9cutez ceci en tant qu'utilisateur de sauvegarde autoris\u00e9 apr\u00e8s avoir coordonn\u00e9 les \u00e9critures. Remplacez le nom de la base de donn\u00e9es et les chemins par votre installation r\u00e9elle. Le fichier d'options priv\u00e9 doit d\u00e9j\u00e0 exister :<\/p>\n<pre data-no-translation=\"\" translate=\"no\"><code data-no-translation=\"\" translate=\"no\">#!\/usr\/bin\/env bash\nset -euo pipefail\numask 077\nstamp=$(date -u +%Y%m%dT%H%M%SZ)\ndest=\"\/srv\/backups\/fivem\/$stamp\"\ninstall -d -m 0700 \"$dest\"\nmariadb-dump --defaults-extra-file=\/etc\/fivem\/backup.cnf \\\n  --single-transaction --routines --events --triggers \\\n  --databases fivem --result-file=\"$dest\/database.sql\"\ntest -s \"$dest\/database.sql\"\ntar -C \/srv\/fivem -czf \"$dest\/server-data.tar.gz\" server-data\ntar -tzf \"$dest\/server-data.tar.gz\" &gt; \/dev\/null\nsha256sum \"$dest\/database.sql\" \"$dest\/server-data.tar.gz\" &gt; \"$dest\/SHA256SUMS\"<\/code><\/pre>\n<p>Ajoutez tous les chemins txAdmin\/configuration requis en dehors de server-data \u00e0 votre ensemble de sauvegarde. Testez la commande sous le m\u00eame compte et environnement utilis\u00e9s par cron ou un timer systemd. Alertez en cas de statut de sortie non nul.<\/p>\n<h2 id=\"windows-powershell-example\">Exemple Windows PowerShell<\/h2>\n<p>Utilisez le chemin r\u00e9el vers mariadb-dump.exe et un fichier d'options priv\u00e9. --result-file \u00e9vite les modifications d'encodage de texte du shell vers le dump :<\/p>\n<pre data-no-translation=\"\" translate=\"no\"><code data-no-translation=\"\" translate=\"no\">$ErrorActionPreference = \"Stop\"\n$Stamp = (Get-Date).ToUniversalTime().ToString(\"yyyyMMddTHHmmssZ\")\n$Destination = \"D:\\FiveM-Backups\\$Stamp\"\nNew-Item -ItemType Directory -Path $Destination | Out-Null\n&amp; \"C:\\MariaDB\\bin\\mariadb-dump.exe\" `\n  \"--defaults-extra-file=D:\\FiveM-Private\\backup.cnf\" `\n  --single-transaction --routines --events --triggers `\n  --databases fivem \"--result-file=$Destination\\database.sql\"\nif ($LASTEXITCODE -ne 0) { throw \"Database dump failed\" }\nif ((Get-Item \"$Destination\\database.sql\").Length -eq 0) { throw \"Empty dump\" }\nCopy-Item \"D:\\FXServer\\server-data\" \"$Destination\\server-data\" -Recurse\nGet-FileHash \"$Destination\\database.sql\" | Format-List<\/code><\/pre>\n<p>Restreignez les autorisations Windows du r\u00e9pertoire de sauvegarde aux administrateurs de sauvegarde et de r\u00e9cup\u00e9ration. Dans le Planificateur de t\u00e2ches, utilisez des chemins d'ex\u00e9cution explicites et un compte d\u00e9di\u00e9 ; v\u00e9rifiez son historique et les alertes d'\u00e9chec.<\/p>\n<h2 id=\"restore-on-an-isolated-server\">Restaurer sur un serveur isol\u00e9<\/h2>\n<ol>\n<li>Choisissez une g\u00e9n\u00e9ration de sauvegarde compl\u00e8te et v\u00e9rifiez ses sommes de contr\u00f4le ou l'int\u00e9grit\u00e9 de l'archive. Ne combinez jamais une base de donn\u00e9es plus r\u00e9cente avec des ressources arbitraires plus anciennes.<\/li>\n<li>Extrayez les fichiers dans un emplacement de test s\u00e9par\u00e9. Pr\u00e9parez un service de base de donn\u00e9es isol\u00e9 et restaurez database.sql avec le client MariaDB correspondant. Le dump contient le nom de la base de donn\u00e9es, ne l'importez donc pas dans le service en direct.<\/li>\n<li>D\u00e9finissez des identifiants et des points de terminaison de test uniquement et d\u00e9marrez la combinaison artefact\/framework enregistr\u00e9e. Emp\u00eachez les ressources de test d'envoyer de vrais paiements, des webhooks ou des notifications aux joueurs.<\/li>\n<li>Rejoignez avec un joueur de test. V\u00e9rifiez le personnage, l'inventaire, les m\u00e9tiers, le logement et les autorisations ; reconnectez-vous et red\u00e9marrez, puis v\u00e9rifiez \u00e0 nouveau.<\/li>\n<li>Enregistrez la dur\u00e9e de la restauration et toute d\u00e9pendance manquante. Conservez plusieurs g\u00e9n\u00e9rations, une copie chiffr\u00e9e hors site et un compte de sauvegarde qui ne peut pas effacer toutes les g\u00e9n\u00e9rations distantes.<\/li>\n<\/ol>\n<p>Reprenez les \u00e9critures normales seulement apr\u00e8s que l'ensemble de sauvegarde soit complet. Une t\u00e2che planifi\u00e9e r\u00e9ussie est une preuve utile ; une restauration r\u00e9ussie est la v\u00e9rification qui rend la sauvegarde digne de confiance.<\/p>","protected":false},"excerpt":{"rendered":"<p>Une sauvegarde FiveM r\u00e9cup\u00e9rable associe la base de donn\u00e9es aux ressources et \u00e0 la configuration correspondantes. Prouvez-le en restaurant cette paire sur un serveur isol\u00e9 et en v\u00e9rifiant l'\u00e9tat du joueur apr\u00e8s un red\u00e9marrage.<\/p>","protected":false},"author":1,"featured_media":185837,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1899],"tags":[],"class_list":["post-162229","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials"],"_links":{"self":[{"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/posts\/162229","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/comments?post=162229"}],"version-history":[{"count":5,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/posts\/162229\/revisions"}],"predecessor-version":[{"id":213901,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/posts\/162229\/revisions\/213901"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/media\/185837"}],"wp:attachment":[{"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/media?parent=162229"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/categories?post=162229"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rpcrate.com\/fr\/wp-json\/wp\/v2\/tags?post=162229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}