Cómo hacer copia de seguridad de un servidor FiveM: base de datos, recursos y txData

Haz copia de seguridad de tu servidor FiveM: mysqldump o HeidiSQL para la base de datos, recursos, server.cfg y txData, copias de seguridad programadas, copias fuera del servidor y cómo restaurar.

Un disco falla, un script incorrecto elimina una tabla, un anfitrión cierra tu cuenta, o eliminas la carpeta incorrecta. Si tu única copia del servidor está en el servidor, comienzas de cero y tus jugadores pierden sus personajes. Esta guía cubre qué hacer copia de seguridad, cómo automatizarlo, y cómo restaurar.

Qué hacer copia de seguridad

Qué Por qué Dónde
Base de datos Personajes, dinero, vehículos, inventarios, todo lo que los jugadores poseen MariaDB o MySQL
server.cfg Tu configuración del servidor y el orden de inicio carpeta de datos del servidor
Carpeta resources Tus scripts y sus ficheros de configuración carpeta de datos del servidor
txData Configuración de txAdmin, cuentas de administrador, historial de bans y el registro de acciones carpeta txData

Los binarios del servidor FiveM (artifacts) no necesitan una copia de seguridad. Puedes descargarlos de nuevo, ver actualizando artifacts del servidor.

Cuidado: server.cfg puede contener tu clave de licencia, contraseña de base de datos y tokens de Discord. Mantén las copias de seguridad privadas y nunca las publiques en un lugar público.

Copia de seguridad de la base de datos

Con mysqldump

mysqldump viene con MariaDB y MySQL. Reemplaza el usuario y nombre de la base de datos con los tuyos:

bash
mysqldump -u root -p --single-transaction --routines --databases es_extended > backup.sql
  • --single-transaction toma una copia consistente de tablas InnoDB sin bloquear el servidor.
  • --routines incluye procedimientos almacenados.
  • --databases añade la declaración CREATE DATABASE, por lo que una restauración es más simple.

Pon la fecha en el nombre de fichero, así las copias no se sobrescriben entre sí:

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

Para ejecutarlo sin solicitud de contraseña, almacena las credenciales en un fichero de opciones protegido (como ~/.my.cnf en Linux) en lugar de escribirlas en el comando.

Con HeidiSQL

Si prefieres una herramienta gráfica:

  1. Conéctate al servidor en HeidiSQL.
  2. Haz clic derecho en la base de datos y elige Exportar base de datos como SQL.
  3. Selecciona todas las tablas, elige Crear para la estructura e Insertar para los datos, y elige un fichero de destino.
  4. Haz clic en Exportar.

Hazlo a mano antes de cambios arriesgados. Para copias de seguridad regulares, automatízalo.

Copia de seguridad de ficheros

Comprime las carpetas que quieras mantener:

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

En Windows, PowerShell puede hacer lo mismo:

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

Ejecutalo desde la carpeta que contiene esos elementos, o usa rutas completas. Salta carpetas de caché si tus copias de seguridad se vuelven enormes; se reconstruyen cuando el servidor se ejecuta.

Programalo

Linux: cron

Abre crontab con crontab -e y añade una línea. Esto ejecuta el dump todos los días a las 04:00:

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

Dentro de crontab, % debe escaparse como \%. El usuario que lo ejecuta necesita acceso a la base de datos a través de un fichero de opciones, como se describe arriba.

Windows: Programador de tareas

Guarda tus comandos de copia de seguridad en un script backup.ps1, luego crea una tarea diaria:

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

O usa la aplicación Programador de tareas: crea una tarea básica, establece un desencadenador diario, y elige el script como la acción.

Elige una hora cuando pocos jugadores estén en línea, como justo antes de tu reinicio programado.

Elimina copias de seguridad antiguas

Las copias de seguridad se acumulan. Mantén, por ejemplo, las últimas 7 copias diarias y algunas semanales. Una pequeña limpieza en el script es suficiente:

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

Mantén copias de seguridad fuera del servidor

La regla es simple: una copia de seguridad que vive en la misma máquina no es una copia de seguridad real. Cópiala a otro lugar después de cada ejecución:

  • otro servidor o máquina de casa, con scp o rsync sobre SSH,
  • un servicio de almacenamiento en nube, con una herramienta como rclone,
  • un disco diferente que no es parte de la misma máquina, como mínimo.

Prueba que la copia llega. Comprueba el destino de vez en cuando.

Restaura una copia de seguridad

Una copia de seguridad que nunca has restaurado es una esperanza, no una copia de seguridad. Prueba una restauración en una base de datos de prueba ahora.

  1. Detén el servidor FiveM desde txAdmin, así nada escribe durante la restauración.
  2. Restaura la base de datos:
bash
mysql -u root -p < backup.sql

Porque el dump usó --databases, recrea la base de datos en sí. Si exportaste con HeidiSQL, elige Ejecutar fichero SQL en la herramienta y selecciona el fichero.

  1. Devuelve server.cfg y la carpeta resources, y la carpeta txData si txAdmin se perdió.
  2. Inicia el servidor y mira la consola para errores de base de datos. Ver oxmysql connection errors si la conexión falla.

La restauración sobrescribe datos actuales en esas tablas, así que hazlo a propósito y mantén una copia del estado actual primero.

Antes de cada cambio

Antes de actualizar un framework, añadir un script que edita tablas, o ejecutar un fichero SQL de una descarga, toma un dump manual rápido. Toma segundos y ahorra muchos problemas.

Lista de verificación

Síntoma Solución
Sin copia de seguridad en absoluto Ejecuta mysqldump hoy, luego programalo
El dump pide una contraseña en un trabajo programado Usa un fichero de opciones con las credenciales
Las copias de seguridad solo están en el servidor Cópialas a otra máquina o almacenamiento
El disco se llena Elimina copias de seguridad más antiguas que tu período de retención
Configuración de txAdmin o administradores perdidos Restaura la carpeta txData
La restauración falla en la importación Comprueba que el fichero SQL esté completo y que el usuario de la base de datos tenga los derechos
No estás seguro de que la copia de seguridad funciona Restaurala a una base de datos de prueba y comprueba las tablas

Respuestas rápidas

¿Cuál es la cosa más importante de la que hacer copia de seguridad?

La base de datos. Los personajes, el dinero, los vehículos e inventarios viven allí, y no puedes reconstruirlos. Los recursos y la configuración pueden descargarse o recrearse, pero los datos de jugadores no.

¿Con qué frecuencia debo hacer copia de seguridad?

Haz copia de seguridad de la base de datos al menos una vez al día, y antes de cada actualización o gran cambio de script. Un servidor ocupado puede ejecutarla cada pocas horas.

¿Es suficiente una copia de seguridad en la misma máquina?

No. Un fallo de disco, un servidor eliminado o un ataque de ransomware se lleva la copia de seguridad con él. Copia las copias de seguridad a otra máquina o servicio de almacenamiento.

Scripts que evitan este problema

Tebex TemplateUn tema premium para tu tienda Tebex, sin código y editable desde el panel.Ver script →Item Creator V2Crea items usables con animaciones, props, efectos y más — sin escribir código.Ver script →Shop CreatorCrea una tienda en menos de un minuto — dueños, empleados, caja fuerte y atracos.Ver script →

Sigue leyendo