Como fazer backup de um servidor FiveM: banco de dados, recursos e txData

Faça backup do seu servidor FiveM: mysqldump ou HeidiSQL para o banco de dados, recursos, server.cfg e txData, backups agendados, cópias fora do servidor e como restaurar.

Um disco morre, um script ruim derruba uma tabela, um host fecha sua conta, ou você deleta a pasta errada. Se sua única cópia do servidor está no servidor, você começa do zero e seus jogadores perdem seus personagens. Este guia cobre o que fazer backup, como automatizar, e como restaurar.

O que fazer backup

O que Por quê Onde
Banco de dados Personagens, dinheiro, veículos, inventários, tudo que os jogadores possuem MariaDB ou MySQL
server.cfg Suas configurações do servidor e a ordem de início pasta de dados do servidor
pasta resources Seus scripts e seus arquivos de config pasta de dados do servidor
txData Configurações do txAdmin, contas de admin, histórico de bans e log de ações pasta txData

Os binários do servidor FiveM (artifacts) não precisam de backup. Você pode baixá-los novamente, veja updating server artifacts.

Atenção: server.cfg pode conter sua chave de license, senha de banco de dados e tokens do Discord. Mantenha backups privados e nunca os poste em um lugar público.

Faça backup do banco de dados

Com mysqldump

mysqldump é enviado com MariaDB e MySQL. Substitua o usuário e o nome do banco de dados pelos seus:

bash
mysqldump -u root -p --single-transaction --routines --databases es_extended > backup.sql
  • --single-transaction faz uma cópia consistente de tabelas InnoDB sem trancar o servidor.
  • --routines inclui procedimentos armazenados.
  • --databases adiciona a declaração CREATE DATABASE, então uma restauração é mais simples.

Coloque a data no nome de arquivo, para que cópias não sobrescrevam uma à outra:

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

Para executá-lo sem prompt de senha, armazene as credenciais em um arquivo de opção protegido (como ~/.my.cnf no Linux) em vez de digitá-las no comando.

Com HeidiSQL

Se você prefere uma ferramenta gráfica:

  1. Conecte-se ao servidor no HeidiSQL.
  2. Clique com o botão direito do mouse no banco de dados e escolha Export database as SQL.
  3. Selecione todas as tabelas, escolha Create para a estrutura e Insert para os dados, e escolha um arquivo de destino.
  4. Clique em Export.

Faça isso manualmente antes de mudanças arriscadas. Para backups regulares, automatize.

Faça backup de arquivos

Comprima as pastas que você quer manter:

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

No Windows, PowerShell pode fazer o mesmo:

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

Execute de dentro da pasta que contém esses itens, ou use caminhos completos. Pule pastas de cache se seus backups ficarem enormes; elas são reconstruídas quando o servidor roda.

Agende-o

Linux: cron

Abra o crontab com crontab -e e adicione uma linha. Isto executa o dump todo dia às 04:00:

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

Dentro do crontab, % deve ser escapado como \%. O usuário que o executa precisa de acesso ao banco de dados através de um arquivo de opção, como descrito acima.

Windows: Task Scheduler

Salve seus comandos de backup em um script backup.ps1, depois crie uma tarefa diária:

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

Ou use o aplicativo Task Scheduler: crie uma tarefa básica, defina um acionador diário, e escolha o script como a ação.

Escolha um horário quando poucos jogadores estão online, como logo antes de seu scheduled restart.

Delete old backups

Backups se acumulam. Mantenha, por exemplo, as últimas 7 cópias diárias e algumas semanais. Uma pequena limpeza no script é suficiente:

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

Mantenha backups fora do servidor

A regra é simples: um backup que vive na mesma máquina não é um backup real. Copie-o para outro lugar após cada execução:

  • outro servidor ou máquina pessoal, com scp ou rsync sobre SSH,
  • um serviço de armazenamento em nuvem, com uma ferramenta como rclone,
  • um disco diferente que não faz parte da mesma máquina, no mínimo.

Teste que a cópia chega. Verifique o destino de vez em quando.

Restaure um backup

Um backup que você nunca restaurou é uma esperança, não um backup. Tente uma restauração em um banco de dados de teste agora.

  1. Pare o servidor FiveM do txAdmin, para que nada escreva durante a restauração.
  2. Restaure o banco de dados:
bash
mysql -u root -p < backup.sql

Como o dump usou --databases, ele recria o banco de dados em si. Se você exportou com HeidiSQL, escolha Run SQL file na ferramenta e selecione o arquivo.

  1. Coloque server.cfg e a pasta resources de volta, e a pasta txData se txAdmin foi perdido.
  2. Inicie o servidor e observe o console para erros de banco de dados. Veja oxmysql connection errors se a conexão falhar.

A restauração sobrescreve dados atuais nessas tabelas, então faça propositalmente e mantenha uma cópia do estado atual primeiro.

Antes de cada mudança

Antes de atualizar um framework, adicionar um script que edita tabelas, ou executar um arquivo SQL de um download, faça um dump manual rápido. Leva segundos e economiza muito trabalho.

Checklist

Sintoma Solução
Nenhum backup Execute mysqldump hoje, depois agende-o
Dump pede senha em um trabalho agendado Use um arquivo de opção com as credenciais
Backups apenas no servidor Copie-os para outra máquina ou armazenamento
Disco fica cheio Delete backups mais antigos que seu período de retenção
Perdeu configurações de txAdmin ou admins Restaure a pasta txData
Falha de restauração na importação Verifique se o arquivo SQL está completo e o usuário do banco de dados tem os direitos
Incerto se o backup funciona Restaure-o para um banco de dados de teste e verifique as tabelas

Respostas rápidas

Qual é a coisa mais importante para fazer backup?

O banco de dados. Personagens, dinheiro, veículos e inventários vivem lá, e você não pode reconstrui-los. Recursos e config podem ser re-baixados ou re-criados, mas dados do jogador não.

Com que frequência devo fazer backup?

Faça backup do banco de dados pelo menos uma vez por dia, e antes de cada atualização ou grande mudança de script. Um servidor ocupado pode executá-lo a cada poucas horas.

Um backup na mesma máquina é suficiente?

Não. Uma falha de disco, um servidor deletado ou um ataque de ransomware leva o backup consigo. Copie backups para outra máquina ou serviço de armazenamento.

Scripts sem esse problema

Tebex TemplateUm tema premium para sua loja Tebex, sem código e editado todo pelo painel da Tebex.Ver script →Item Creator V2Crie itens usáveis com animações, props, efeitos e muito mais — sem escrever código.Ver script →Shop CreatorMonte uma loja em menos de um minuto — donos, funcionários, cofres e assaltos inclusos.Ver script →

Continue lendo