O maior portal de MU Online do Brasil — desde 2003
Tutorial Intermediário Infra

Como automatizar o backup do seu servidor de MU Online para o Google Drive

Configure um pipeline automático que gera dump do banco de dados e dos arquivos críticos do servidor de MU Online e envia para o Google Drive via rclone, com rotação, criptografia e alertas de falha.

BR Bruno · Atualizado em 4 nov 2025 · ⏱ 15 min de leitura
Resposta rápida

Perder o banco de dados de um servidor de MU Online — com contas, personagens, itens e histórico de compras — é o tipo de incidente que pode encerrar um projeto da noite para o dia. Ainda assim, é comum ver administradores fazendo backup manual "quando lembram", o que é uma questão de tempo até dar

Perder o banco de dados de um servidor de MU Online — com contas, personagens, itens e histórico de compras — é o tipo de incidente que pode encerrar um projeto da noite para o dia. Ainda assim, é comum ver administradores fazendo backup manual "quando lembram", o que é uma questão de tempo até dar errado. Este tutorial monta um pipeline completo e automatizado: dump do banco, compactação, criptografia opcional, envio para o Google Drive via rclone, rotação de versões antigas e alerta em caso de falha — tudo agendado para rodar sozinho todos os dias.

Por que a nuvem é parte essencial da estratégia de backup

A regra clássica de backup é 3-2-1: três cópias dos dados, em dois tipos de mídia diferentes, com uma cópia fora do local (off-site). Um backup que fica só no mesmo disco do servidor de produção não protege contra falha de hardware, ransomware ou erro de operação que apaga tudo. O Google Drive cumpre o papel de cópia off-site, com custo baixo e integração simples via rclone.

Visão geral do pipeline

O fluxo completo tem cinco etapas, executadas em sequência por um único script agendado:

EtapaAçãoFerramenta
1Dump do banco de dadosmysqldump / sqlcmd
2Cópia dos arquivos críticos (configs, logs recentes)tar/zip
3Compactação e (opcional) criptografiagzip, gpg
4Envio para o Google Driverclone
5Rotação (apagar backups antigos locais e remotos)script próprio

Instalando e configurando o rclone

O rclone é a ferramenta padrão para sincronizar arquivos com dezenas de provedores de nuvem, incluindo o Google Drive, sem precisar de credenciais expostas em texto puro no script.

curl https://rclone.org/install.sh | sudo bash
rclone config

No assistente interativo, escolha n para novo remote, dê o nome gdrive_mu, selecione o tipo drive (Google Drive) e siga o fluxo de autenticação OAuth no navegador. Ao final, confirme o funcionamento:

rclone lsd gdrive_mu:

Se listar as pastas da sua conta do Google Drive, a configuração está correta.

Gerando o dump do banco de dados

Para MySQL/MariaDB (comum em MuEMU e derivados), use --single-transaction para não travar tabelas em uso durante o dump:

mysqldump --single-transaction --routines --triggers \
  -u backup_user -p"$DB_PASS" mu_online > /backup/mu_$(date +%F).sql

Para SQL Server (comum em servidores IGCN), use sqlcmd com um BACKUP DATABASE direto para arquivo .bak:

BACKUP DATABASE MuOnline
TO DISK = 'C:\Backup\MuOnline_20260730.bak'
WITH COMPRESSION, INIT;

Crie um usuário de banco dedicado a backups (backup_user), com permissão apenas de leitura e BACKUP, nunca o usuário administrativo do GameServer — isso reduz o risco em caso de vazamento do script.

Empacotando arquivos de configuração críticos

Além do banco, vale incluir no backup os arquivos de configuração do GameServer/ConnectServer (que raramente mudam, mas custam caro para reconstruir do zero) e os últimos dias de log:

tar -czf /backup/config_$(date +%F).tar.gz \
  /srv/muserver/Data/*.txt \
  /srv/muserver/Data/*.xml \
  /srv/muserver/logs/*.log

Criptografando o backup antes do envio

Como o dump contém dados sensíveis (senhas com hash, histórico de compras, e-mails de jogadores), é recomendável criptografar antes de enviar para a nuvem, mesmo que o Google Drive já seja privado por padrão:

gpg --symmetric --cipher-algo AES256 --batch --passphrase "$BACKUP_PASSPHRASE" \
  /backup/mu_$(date +%F).sql

Isso gera um arquivo .gpg que só pode ser aberto com a senha definida — guarde essa senha em um cofre separado do servidor (gerenciador de senhas da equipe), nunca no mesmo script.

Enviando para o Google Drive

Com os arquivos prontos, o envio é uma única linha:

rclone copy /backup/ gdrive_mu:mu-backups/$(date +%Y-%m)/ --progress

Organizar por pasta de mês (2026-07/) facilita a navegação manual no Drive quando for necessário localizar um backup específico rapidamente.

Script completo de backup diário

Juntando as etapas em um único script (backup_diario.sh):

#!/bin/bash
set -e
DATA=$(date +%F)
BACKUP_DIR=/backup
DB_DUMP="$BACKUP_DIR/mu_$DATA.sql"

mysqldump --single-transaction -u backup_user -p"$DB_PASS" mu_online > "$DB_DUMP"
tar -czf "$BACKUP_DIR/config_$DATA.tar.gz" /srv/muserver/Data/*.txt /srv/muserver/Data/*.xml
gpg --symmetric --cipher-algo AES256 --batch --passphrase "$BACKUP_PASSPHRASE" "$DB_DUMP"
rm -f "$DB_DUMP"

rclone copy "$BACKUP_DIR/" gdrive_mu:mu-backups/$(date +%Y-%m)/ --progress
echo "Backup de $DATA concluído com sucesso." >> /var/log/mu/backup.log

Rotação: apagando backups antigos

Manter todos os backups para sempre esgota espaço rapidamente. Um esquema comum é reter os últimos 7 backups diários e apagar o resto, tanto localmente quanto no Drive:

find /backup -name "*.gpg" -mtime +7 -delete
rclone delete gdrive_mu:mu-backups/ --min-age 90d
FrequênciaRetenção sugeridaLocal
Diário7 diasLocal + Drive
Semanal30 diasDrive
Mensal6 a 12 mesesDrive

Alertando em caso de falha

Um backup que falha silenciosamente é pior do que não ter backup — dá falsa sensação de segurança. Adicione um trap no script para notificar em caso de erro, reaproveitando o mesmo webhook de Discord/Telegram usado nos avisos de evento:

trap 'curl -s -X POST "$DISCORD_WEBHOOK_URL" -d "{\"content\":\"⚠️ Falha no backup diário do MU Online!\"}" -H "Content-Type: application/json"' ERR

Agendando a execução automática

No Linux, agende via cron para rodar de madrugada, fora do horário de pico de jogadores:

0 4 * * * /usr/local/bin/backup_diario.sh >> /var/log/mu/backup_cron.log 2>&1

No Windows, use o Agendador de Tarefas apontando para um .bat que chama o rclone e o sqlcmd, com gatilho diário às 04:00.

Testando a restauração periodicamente

Um backup nunca testado é uma aposta. A cada mês, baixe o arquivo mais recente e restaure em um ambiente de teste isolado (nunca em produção) para validar que o processo completo funciona ponta a ponta:

rclone copy gdrive_mu:mu-backups/2026-07/mu_2026-07-30.sql.gpg /tmp/teste/
gpg --decrypt --batch --passphrase "$BACKUP_PASSPHRASE" /tmp/teste/mu_2026-07-30.sql.gpg > /tmp/teste/mu_restaurado.sql
mysql -u root -p mu_teste < /tmp/teste/mu_restaurado.sql

Erros comuns e soluções

SintomaCausa provávelSolução
rclone copy falha com erro de autenticaçãoToken OAuth expiradoRode rclone config reconnect gdrive_mu:
Dump do MySQL trava tabelas em produçãoFaltou --single-transactionAdicione a flag ao comando de dump
Backup consome todo o espaço em discoRotação local não configuradaAdicione find ... -delete ao script
Ninguém percebe que o backup parou de rodarFalta de alerta de falhaImplemente trap com webhook de notificação
Arquivo .gpg não descriptografaSenha diferente da usada na criptografiaCentralize a senha em um cofre único e documentado
Cron não executaPermissão de execução ausente no scriptRode chmod +x backup_diario.sh

Checklist de backup automatizado

  • rclone instalado e remote do Google Drive configurado e testado.
  • Usuário de banco dedicado a backup, com permissões mínimas.
  • Script de dump + compactação + criptografia funcionando manualmente.
  • Envio ao Google Drive validado com rclone lsd.
  • Rotação local e remota configurada.
  • Alerta de falha via Discord/Telegram implementado.
  • Agendamento diário confirmado (cron ou Agendador de Tarefas).
  • Restauração testada em ambiente isolado no último mês.

Com o backup rodando sozinho e testado, a maior fonte de risco operacional do seu servidor deixa de ser "esquecer de salvar" e passa a ser apenas monitorar os alertas. Se você ainda está montando a infraestrutura do zero, volte ao tutorial de criação de servidor de MU Online para garantir que a base está sólida antes de automatizar o resto.

Perguntas frequentes

Por que usar o Google Drive e não só um backup local?

Backup local protege contra corrupção de dados ou erro de operação, mas não contra falha do disco físico, roubo do servidor ou incêndio no datacenter. O Google Drive (ou qualquer nuvem) garante uma cópia fora do local físico do servidor, essencial na regra 3-2-1 de backup.

O rclone é gratuito?

Sim, o rclone é uma ferramenta open source e gratuita. O custo, se houver, é apenas do armazenamento no Google Drive além da cota gratuita (15 GB), que pode ser expandido com um plano Google One.

Preciso parar o servidor para fazer o backup?

Não é obrigatório se você usar um dump consistente do banco (mysqldump com --single-transaction, ou snapshot do MSSQL). Parar o servidor por alguns segundos é mais seguro em ambientes pequenos, mas não é necessário em produção com as flags corretas.

Como faço para restaurar um backup do Google Drive em caso de emergência?

Baixe o arquivo mais recente com rclone copy, descriptografe (se aplicável) e restaure o dump SQL com o comando de import correspondente (mysql < dump.sql ou RESTORE DATABASE no MSSQL). Teste esse processo periodicamente para garantir que o backup realmente funciona.

Quantas cópias de backup devo manter?

Uma prática comum é manter backups diários dos últimos 7 dias, semanais dos últimos 30 dias e mensais dos últimos 6 a 12 meses. Isso equilibra espaço em disco/nuvem com capacidade de recuperação de erros descobertos tardiamente.

BR
Editor de eventos, mapas e itens

Bruno é especialista em eventos, mapas, bosses e economia de itens do MU Online. Documenta cada detalhe com base em jogo real.

Continue lendo

Artigos relacionados