
- ESX
Por Luke

Una copia de seguridad recuperable de FiveM empareja la base de datos con los recursos y la configuración coincidentes. Demuéstralo restaurando ese par en un servidor aislado y verificando el estado del jugador después de un reinicio.
Incluye server-data, server.cfg, permisos, perfiles de txAdmin requeridos, recursos personalizados y registros de versiones. Anota las versiones de artefactos y frameworks, y las dependencias externas. Guarda los secretos en copias de seguridad privadas, nunca en repositorios públicos.
Para un par consistente, programa el mantenimiento y detén FXServer y otros escritores de aplicaciones antes del volcado final de la base de datos y la copia de archivos. No ejecutes cambios de esquema durante el volcado. Los ejemplos a continuación usan MariaDB; las instalaciones de MySQL deben usar sus herramientas y opciones de proveedor coincidentes.
Usa una cuenta de respaldo dedicada con los privilegios requeridos por las características de tu base de datos. Almacena sus detalles de conexión en un archivo de opciones privado de MariaDB legible solo por la cuenta de respaldo. Mantenlo fuera de la raíz web y del repositorio.
El manual de mariadb-dump explica la autenticación y los límites de las instantáneas consistentes. --single-transaction proporciona una instantánea consistente para tablas transaccionales; no hace que las tablas no transaccionales sean consistentes.
Ejecuta esto como el usuario de respaldo autorizado después de coordinar las escrituras. Reemplaza el nombre de la base de datos y las rutas con tu instalación real. El archivo de opciones privado ya debe 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"Añade cualquier ruta de txAdmin/configuración requerida fuera de server-data a tu conjunto de copias de seguridad. Prueba el comando con la misma cuenta y entorno utilizados por cron o un temporizador de systemd. Alerta si el estado de salida no es cero.
Usa la ruta real a mariadb-dump.exe y un archivo de opciones privado. --result-file evita los cambios de codificación de texto del shell en el volcado:
$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-ListRestringe los permisos de Windows del directorio de copia de seguridad a los administradores de copia de seguridad y recuperación. En el Programador de tareas, usa rutas ejecutables explícitas y una cuenta dedicada; verifica su historial y las alertas de fallos.
Reanuda las escrituras normales solo después de que el conjunto de copias de seguridad esté completo. Un trabajo programado exitoso es una evidencia útil; una restauración exitosa es la verificación que hace que la copia de seguridad sea confiable.





