
- ESX
Por Luke

Um backup recuperável do FiveM emparelha o banco de dados com os recursos e a configuração correspondentes. Prove isso restaurando esse par em um servidor isolado e verificando o estado do jogador após uma reinicialização.
Inclua server-data, server.cfg, permissões, perfis txAdmin necessários, recursos personalizados e registros de versão. Anote as versões do artefato e do framework e as dependências externas. Mantenha segredos em backups privados, nunca em repositórios públicos.
Para um par consistente, agende a manutenção e pare o FXServer e outros aplicativos que gravam dados antes do despejo final do banco de dados e da cópia do arquivo. Não execute alterações de esquema durante o despejo. Os exemplos abaixo usam MariaDB; as instalações MySQL devem usar suas ferramentas e opções de fornecedor correspondentes.
Use uma conta de backup dedicada com os privilégios exigidos pelos recursos do seu banco de dados. Armazene seus detalhes de conexão em um arquivo de opção privado do MariaDB legível apenas pela conta de backup. Mantenha-o fora da raiz da web e do repositório.
O manual do mariadb-dump explica a autenticação e os limites de snapshot consistente. --single-transaction fornece um snapshot consistente para tabelas transacionais; não torna as tabelas não transacionais consistentes.
Execute isso como o usuário de backup autorizado após coordenar as gravações. Substitua o nome do banco de dados e os caminhos pela sua instalação real. O arquivo de opção privado já deve existir:
#!/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"Adicione quaisquer caminhos txAdmin/configuração necessários fora de server-data ao seu conjunto de backup. Teste o comando sob a mesma conta e ambiente usados pelo cron ou por um temporizador systemd. Alerte sobre status de saída diferente de zero.
Use o caminho real para mariadb-dump.exe e um arquivo de opção privado. --result-file evita alterações na codificação de texto do shell para o 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-ListRestrinja as permissões do Windows do diretório de backup aos administradores de backup e recuperação. No Agendador de Tarefas, use caminhos executáveis explícitos e uma conta dedicada; verifique seu histórico e alertas de falha.
Retome as gravações normais somente após a conclusão do conjunto de backup. Um trabalho agendado bem-sucedido é uma evidência útil; uma restauração bem-sucedida é a verificação que torna o backup confiável.





