Backup Automático no MikroTik RouterOS com Scheduler
| |

Backup Automático no MikroTik RouterOS com Scheduler

Backup do MikroTik falha do jeito mais previsível: alguém esquece de rodar antes de uma mudança arriscada, ou o arquivo fica salvo só no próprio roteador — que é justamente o equipamento que vai quebrar. A solução é tirar o backup da lista de tarefas manuais: um script agendado no /system scheduler gera o backup binário e a exportação de configuração todo dia, sem depender de ninguém lembrar, e envia o arquivo para fora do roteador por e-mail ou FTP.

Por que gerar dois formatos de backup

O RouterOS oferece dois comandos diferentes para salvar a configuração, e cada um resolve um problema que o outro não resolve:

  • /system backup save gera um arquivo binário (.backup) com tudo, incluindo endereços MAC e senhas. Restaura rápido, mas só no mesmo modelo de hardware e na mesma versão (ou compatível) do RouterOS.
  • /export gera um arquivo texto (.rsc) legível, editável e portável entre equipamentos — mas por padrão não inclui senhas nem chaves.

Rodar os dois em todo backup cobre os dois cenários: restauração rápida no mesmo roteador e migração para hardware novo caso o antigo morra de vez.

Passo a passo: script de backup combinado

1. Criar o script

Acesse o terminal do RouterOS (Winbox ou SSH) e crie um script que monta o nome do arquivo com identidade, data e hora, gera os dois formatos e registra no log:

/system script
add name=auto-backup policy=read,write,policy,test,sensitive source={
    :local id [/system identity get name]
    :local d  [/system clock get date]
    :local t  [/system clock get time]
    :local base ("$id-$d-$t")

    /system backup save name=$base password=SUA_SENHA_FORTE
    /export compact file=$base

    :log info ("Backup criado: $base")
}

A policy sensitive é obrigatória para o script conseguir exportar valores sensíveis (senhas, chaves pré-compartilhadas de IPSec, etc.). Sem ela, o export sai incompleto e o log não avisa — o arquivo simplesmente vem sem essas informações.

2. Testar manualmente antes de agendar

Rode o script uma vez à mão para confirmar que ele gera os arquivos e não retorna erro de sintaxe ou de permissão:

/system script run auto-backup
/file print where name~[/system identity get name]

Se os dois arquivos (.backup e .rsc) aparecerem na lista, o script está correto e pode ser agendado.

3. Agendar com o scheduler

/system scheduler
add name=daily-backup \
    on-event=auto-backup \
    start-time=03:30:00 \
    interval=1d \
    policy=read,write,policy,test,sensitive

O policy do scheduler precisa repetir exatamente o do script — se um dos dois faltar uma permissão, o job falha silenciosamente e só aparece no log do sistema. Rodar de madrugada (03:30, por exemplo) evita competir com tráfego de produção durante o export.

4. Opcional: rodar também na inicialização

Útil para capturar o estado do equipamento assim que ele sobe, antes de qualquer mudança automatizada mexer na configuração:

/system scheduler
add name=startup-backup \
    on-event=auto-backup \
    start-time=startup \
    interval=0

Enviando o backup para fora do roteador

Backup que mora só no roteador não é backup — é uma cópia que quebra junto com o original. Escolha e-mail ou FTP/SFTP para tirar o arquivo do equipamento assim que ele é gerado.

Por e-mail

Configure o cliente SMTP uma vez:

/tool e-mail
set address=smtp.seuprovedor.com \
    port=587 \
    from=roteador@suaempresa.com \
    user=roteador@suaempresa.com \
    password=SENHA_DO_APP \
    tls=starttls

Depois, estenda o script de backup para anexar e enviar os arquivos:

/tool e-mail send \
    to="ti@suaempresa.com" \
    subject=("Backup RouterOS: $id $d $t") \
    body=("Backup automatico gerado em $d $t") \
    file=("$base.backup,$base.rsc")

Adicione um :delay 5s entre o export e o envio — sem essa pausa, o e-mail pode sair anexando um arquivo ainda sendo gravado. E confira o provedor de e-mail: muitos exigem senha de aplicativo em vez da senha normal da conta, e porta/TLS incompatíveis são a causa mais comum de falha de envio.

Por FTP ou SFTP

Se preferir enviar para um servidor de arquivos em vez de e-mail, use /tool fetch com upload=yes:

/tool fetch url="sftp://backup.suaempresa.com/roteadores/$id/$base.backup" \
    src-path="$base.backup" \
    upload=yes \
    user=usuario_sftp \
    password=SENHA_SFTP

SFTP é preferível a FTP puro porque cripta a transferência — o backup contém senha e, se você exportar com show-sensitive, também chaves privadas. Para validar a identidade do servidor, informe o host-key.

Limpando backups antigos

Arquivos datados se acumulam na memória do roteador (que costuma ter poucos megabytes livres). Sem limpeza, o disco enche e o próprio backup passa a falhar por falta de espaço:

:local id [/system identity get name]
:local files [/file find where name~$id]
:local count [:len $files]
:if ($count > 14) do={
    :local old [:pick $files 0]
    /file remove $old
}

Adicione esse trecho ao final do script de backup para manter só as últimas cópias no roteador — o histórico completo já está seguro no e-mail ou no servidor FTP/SFTP.

Restaurando um backup

Para o binário, o roteador precisa reiniciar durante a restauração:

/system backup load name=NOME-DO-ARQUIVO.backup password=SUA_SENHA_FORTE

Para o export em texto, a restauração é uma importação de comandos — útil também para restaurar só um trecho da configuração, editando o arquivo antes:

/import file-name=NOME-DO-ARQUIVO.rsc

Ao importar um .rsc em um equipamento que já tem parte da configuração, é normal aparecer erro de “already have such entry” em alguns objetos — pode ignorar, é o RouterOS recusando recriar algo que já existe.

Perguntas frequentes

Preciso mesmo gerar os dois formatos, .backup e .rsc?
Sim, se a meta é cobrir os dois cenários de desastre. O binário restaura rápido no mesmo equipamento; o texto é a única forma de levar a configuração para um roteador diferente ou de revisar mudanças linha a linha.

Dá para restaurar um .backup em um modelo diferente de roteador?
Não é recomendado. O formato binário carrega informações específicas de hardware; para migrar entre modelos, use o export .rsc e ajuste manualmente o que for específico do equipamento novo (interfaces, por exemplo).

O scheduler continua rodando depois de o roteador reiniciar?
Sim, os jobs do /system scheduler ficam salvos na configuração. Se o reboot acontecer perto do horário programado, o próximo disparo válido é o do dia seguinte no mesmo horário.

Como faço backup sem senha?
Basta omitir o parâmetro password no /system backup save. Não é recomendado: o arquivo passa a abrir em qualquer equipamento, o que é um risco se ele vazar por e-mail ou FTP mal configurado.

Funciona igual em RouterOS 6 e 7?
Sim, os comandos de backup, export, scheduler, e-mail e fetch são compatíveis entre as duas versões. A sintaxe do script muda pouco de uma versão para outra.

Conclusão

O ganho real desse setup não é o backup em si — é tirar a tarefa da memória de quem administra a rede. Depois de configurar o script e o scheduler, teste a restauração pelo menos uma vez em um ambiente controlado: um backup que nunca foi restaurado é uma suposição, não uma garantia.

Gostou? Compartilhe.

Posts Similares

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *