Você está na página 1de 2

# Criado por: Paulo Rafael

# Fazer backup e Log do Mikrotik e enviar por e-mail. Testado na versão 7.8 do RouterOS

#pega a identificação, nome, versão do routerOS, número de série e data/hora da RB


:local identidade [/system identity get name]
:local rb [/system resource get board-name]
:local versao [/system resource get version]
:local serial [/system routerboard get serial-number]
:local data [/system clock get date]
:local hora [/system clock get time]

#configurações do bot para enviar mensagem no Telegram. exemplo: "bot3719468251:BBHCaajPnka0HUIjkT5bf8bm2KsRz-QjBm3" – chatId: "1177354897"
:local bot "bot_código_bot_telegram"
:local chatId "numero_do_chat_id_do_telegram"
:local msgTelegram "$identidade: %0A %F0%9F%93%A9 backup e log enviado via e-mail"

#configurações de mensagem de e-mail, pode configurar vários destinatários


:local destinatario {"email_1@gmail.com";"email_2@gmail.com"}
:local assuntoEmail "$identidade - Backup Mikrotik ($rb)"
:local corpoEmail "Nome/modelo: $identidade - $rb \nVersão RouterOS: $versao \nNúmero de série: $serial \nData/hora: $data $hora"

#salva o log, backup em texto e backup em arquivo com senha


/log print file=bkp-log-mikrotik.txt
/export terse file=bkp-mikrotik-txt show-sensitive
/system backup save name=bkp-mikrotik password=sua_senha
# espera 10 segundos até o backup ser concluído
:delay 10s

#cria uma lista com os arquivos que foram feitos backups cujo nome começa com "bkp-" e armazena em um array
:local listaArquivos [:toarray ""];
:foreach i in=[/file find] do={
:local nomeArquivo [/file get $i name];
:if ([:pick $nomeArquivo 0 4]="bkp-") do={
:set listaArquivos ($listaArquivos, $nomeArquivo)
}
}

#verifica se os arquivos realmente existem em /file, caso exista envia e-mail com eles em anexo e uma mensagem no telegram.
:if ([:len $listaArquivos]=0) do={
:log error "Nenhum arquivo encontrado. Backup abortado"
} else={
/tool e-mail send to=$destinatario subject=$assuntoEmail body=$corpoEmail file=$listaArquivos
:log warning "E-mail de backup e log enviado com sucesso"
/tool fetch url="https://api.telegram.org/$bot/sendMessage?chat_id=$chatId&text=$msgTelegram" keep-result=no
# espera 20 segundos para que os arquivos não sejam deletados antes de enviar por anexo no e-mail
:delay 20s
#remove os 3 arquivos após enviados
/file remove $listaArquivos
}
}
Instruções para utilizar o script
1. Altere somente as partes em amarelo, caso queira enviar somente para um e-mail altere a linha correspondente, ex: {"email_1@gmail.com"}.
2. Na versão 6 do RouterOS apagar a parte grifada em vermelho.
3. Caso não queira enviar mensagem no Telegram, apagar as linhas grifadas em azul.
4. Crie um agendamento em (/system schedule) para que o script faça o backup no tempo de sua preferência.
5. Observação importante: ao copiar o script cuidado com as quebras de linhas, tem que ficar exatamente igual na página acima.
6. Exemplo de e-mail recebido contendo informações da RB e os arquivos em anexo.

7. Exemplo de mensagem recebida no Telegram.

Você também pode gostar