Come fare backup di un server FiveM: database, resources e txData

Fai backup del tuo server FiveM: mysqldump o HeidiSQL per il database, resources, server.cfg e txData, backup programmati, copie off-server e come ripristinare.

Un disco muore, uno script cattivo elimina una tabella, un host chiude il tuo account, o elimini la cartella sbagliata. Se l'unica copia del server è sul server, ricomincia da zero e i tuoi giocatori perdono i loro personaggi. Questa guida copre cosa fare backup, come automatizzarlo, e come ripristinare.

Cosa fare backup

Cosa Perché Dove
Database Personaggi, soldi, veicoli, inventari, tutto ciò che i giocatori possiedono MariaDB o MySQL
server.cfg Le tue impostazioni del server e l'ordine di avvio cartella dati del server
resources folder I tuoi script e i loro file di config cartella dati del server
txData Impostazioni txAdmin, account admin, cronologia dei ban e il registro delle azioni la cartella txData

I binari del server FiveM (artifacts) non hanno bisogno di backup. Puoi scaricarli di nuovo, vedi aggiornamento degli artifact del server.

Attenzione: server.cfg può contenere la tua chiave di licenza, la password del database e i token di Discord. Mantieni i backup privati e non condividerli mai in un luogo pubblico.

Fai il backup del database

Con mysqldump

mysqldump viene fornito con MariaDB e MySQL. Sostituisci l'utente e il nome del database con il tuo:

bash
mysqldump -u root -p --single-transaction --routines --databases es_extended > backup.sql
  • --single-transaction crea una copia coerente delle tabelle InnoDB senza bloccare il server.
  • --routines include procedure memorizzate.
  • --databases aggiunge l'istruzione CREATE DATABASE, quindi un ripristino è più semplice.

Metti la data nel nome del file, così le copie non si sovrascrivono l'un l'altro:

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

Per eseguirlo senza un prompt di password, memorizza le credenziali in un file di opzioni protetto (come ~/.my.cnf su Linux) invece di digitsrle nel comando.

Con HeidiSQL

Se preferisci uno strumento grafico:

  1. Connettiti al server in HeidiSQL.
  2. Fai clic con il pulsante destro del mouse sul database e scegli Export database as SQL.
  3. Seleziona tutte le tabelle, scegli Create per la struttura e Insert per i dati, e scegli un file di destinazione.
  4. Fai clic su Export.

Fallo a mano prima di cambiamenti rischiosi. Per backup regolari, automatizzalo.

Fai il backup dei file

Comprimi le cartelle che vuoi conservare:

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

Su Windows, PowerShell può fare lo stesso:

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

Eseguilo dalla cartella che contiene questi elementi, o usa percorsi completi. Salta le cartelle di cache se i tuoi backup diventano enormi; vengono ricostruiti quando il server viene eseguito.

Programmalo

Linux: cron

Apri il crontab con crontab -e e aggiungi una riga. Questo esegue il dump ogni giorno alle 04:00:

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

All'interno di crontab, % deve essere sfuggito come \%. L'utente che lo esegue ha bisogno dell'accesso al database tramite un file di opzioni, come descritto sopra.

Windows: Task Scheduler

Salva i tuoi comandi di backup in uno script backup.ps1, quindi crea un'attività giornaliera:

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

O usa l'app Task Scheduler: crea un'attività base, imposta un trigger giornaliero, e scegli lo script come azione.

Scegli un'ora quando pochi giocatori sono online, come appena prima del tuo riavvio programmato.

Elimina i vecchi backup

I backup si accumulano. Mantieni, ad esempio, le ultime 7 copie giornaliere e alcune settimanali. Una piccola pulizia nello script è sufficiente:

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

Mantieni i backup fuori dal server

La regola è semplice: un backup che vive sulla stessa macchina non è un vero backup. Copialo da qualche altra parte dopo ogni esecuzione:

  • un altro server o una macchina domestica, con scp o rsync su SSH,
  • un servizio di archiviazione cloud, con uno strumento come rclone,
  • un disco diverso che non fa parte della stessa macchina, come minimo.

Verifica che la copia arrivi. Controlla la destinazione di tanto in tanto.

Ripristina un backup

Un backup che non hai mai ripristinato è una speranza, non un backup. Prova un ripristino su un database di test ora.

  1. Ferma il server FiveM da txAdmin, così nulla scrive durante il ripristino.
  2. Ripristina il database:
bash
mysql -u root -p < backup.sql

Poiché il dump ha usato --databases, ricrea il database stesso. Se hai esportato con HeidiSQL, scegli Run SQL file nello strumento e seleziona il file.

  1. Rimetti server.cfg e la cartella resources, e la cartella txData se txAdmin è stato perso.
  2. Avvia il server e guarda la console per errori di database. Vedi oxmysql connection errors se la connessione fallisce.

Il ripristino sovrascrive i dati attuali in quelle tabelle, quindi fallo di proposito e conserva una copia dello stato attuale prima.

Prima di ogni cambio

Prima di aggiornare un framework, aggiungere uno script che modifica le tabelle, o eseguire un file SQL da un download, fai un veloce dump manuale. Impiega secondi e risparmia un sacco di guai.

Checklist

Sintomo Soluzione
Nessun backup affatto Esegui mysqldump oggi, poi programmalo
Il dump chiede una password in un lavoro programmato Usa un file di opzioni con le credenziali
I backup solo sul server Copiali su un'altra macchina o archiviazione
Il disco si riempie Elimina i backup più vecchi del tuo periodo di conservazione
Impostazioni txAdmin o admin persi Ripristina la cartella txData
Il ripristino fallisce su import Controlla che il file SQL sia completo e che l'utente del database abbia i diritti
Incerto che il backup funzioni Ripristinalo su un database di test e controlla le tabelle

Risposte rapide

Qual è la cosa più importante di cui fare backup?

Il database. Personaggi, soldi, veicoli e inventari vivono tutti lì, e non puoi ricostruirli. Le risorse e la config possono essere riscaricate o ricreate, ma i dati dei giocatori no.

Quanto spesso dovrei fare backup?

Fai il backup del database almeno una volta al giorno, e prima di ogni aggiornamento o grande cambio di script. Un server occupato può eseguirlo ogni poche ore.

È sufficiente un backup sulla stessa macchina?

No. Un guasto del disco, un server eliminato o un attacco ransomware porta il backup con sé. Copia i backup su un'altra macchina o servizio di archiviazione.

Script senza questo problema

Tebex TemplateUn tema premium senza codice per il tuo negozio Tebex, modificabile interamente dal pannello Tebex.Vedi script →Item Creator V2Crea oggetti utilizzabili con animazioni, props, effetti e altro — senza scrivere codice.Vedi script →Shop CreatorCrea un negozio in meno di un minuto — proprietari, dipendenti, casseforti e rapine inclusi.Vedi script →

Continua a leggere