O Poder Dos Scripts Em Roteadores Mikrotik

Henrique Sebastião
4 min readAug 29, 2023

Introdução

O RouterOS é um sistema operacional baseado em Linux que roda em hardware Mikrotik. Ele é independente e pode ser executado em hardware Mikrotik ou em hardware com arquitetura x86–64. Muito utilizado em provedores de internet ou até mesmo em estabelecimentos e residências que necessitam de uma maior desempenho em suas redes. RouterOS é um sistema operacional robusto e com muitos recursos, que permite a criação de regras de firewall, controle de banda, balanceamento de carga, VPN, entre outros. O RouterOS possui uma interface gráfica de fácil utilização, porém, para quem deseja um maior controle sobre o sistema, é possível utilizar a interface de linha de comando (CLI) ou até mesmo scripts. Neste artigo, iremos abordar o uso de scripts no RouterOS, mostrando como criar e executar scripts, além de mostrar alguns exemplos de scripts que podem ser utilizados em seu dia a dia.

O que é um script?

Um script é um conjunto de comandos que podem ser executados de forma sequencial ou não. No RouterOS, os scripts podem ser executados de forma manual ou automática, por eventos. Os scripts podem ser utilizados para automatizar tarefas, como, por exemplo, criar regras de firewall sempre que um novo dispositivo se conectar a sua rede, criar usuários, entre outros.

Criando um script

Para criar um script, basta acessar o menu System > Scripts e clicar no botão +.

Na janela que será aberta, informe um nome para o script e adicione os comandos que deseja executar.

Após adicionar os comandos, clique em OK para salvar o script.

O script:

:local nomerb;
:set nomerb [/system identity get name];

:local platform;
:set platform [/system resource get platform];

:local boardname;
:set boardname [/system resource get board-name];

:local version;
:set version [/system resource get version];

:local temperatura;
:set temperatura [/system health get temperature];

:local voltagem;
:set voltagem [/system health get voltage];

:local cpuload;
:set cpuload [/system resource get cpu-load];

:local uptime;
:set uptime [/system resource get uptime];

/tool fetch url="https://api.telegram.org/bot<id_bot>/sendMessage?chat_id=<id_group>&text= DISPOSITIVO=$nomerb PLATAFORMA=$platform BOARD_NAME=$boardname VERSION=$version TEMPERATURA=$temperatura C VOLTAGEM=$voltagem CPU_LOAD=$cpuload% UPTIME=$uptime"

Neste exemplo criamos um script que sempre que executado irá enviar para um grupo do Telegram (por meio da API do Telegram), as informações sobre nosso roteador, incluindo: nome do roteador, versão do RouterOS, voltagem corrente, uso de CPU e tempo de funcionamento (uptime).

Executando um script

Para executar um script, basta acessar o menu System > Scripts, selecionar o script que deseja executar e clicar no botão Run Script.

Mensagem enviada para o grupo do Telegram:

Agendando a execução de um script

Para agendar a execução de um script, basta acessar o menu System > Scheduler e clicar no botão +.

Na janela que será aberta, informe um nome para o agendamento, selecione o script que deseja executar, a hora de início e informe a frequência que o script será executado.

Neste exemplo agendamos um script que reinicia o roteador todos os dias às 00:00.

Alguns scripts úteis

Script para enviar informações de status do roteador para grupo do Telegram

Script para enviar notificação para grupo do Telegram sempre que alguém obter um IP do servidor DHCP

Script para tocar beeps (Super Mário)

Script para criar um controle de banda automaticamente sempre que um cliente obter um no IP

Conclusão

Neste artigo, vimos como criar e executar scripts no RouterOS, além de mostrar alguns exemplos de scripts que podem ser utilizados em seu dia a dia. Espero que tenham gostado e até a próxima.

Qualquer dúvida, sugestão ou correção, sintam-se à vontade para entrar em contato comigo ou abrir uma issue no repositório do GitHub.

Você pode me encontra em:

GitHub

LinkedIn

E-mail

--

--

Henrique Sebastião
0 Followers

Back-end Developer. Computer Networks. APIs, Python, FastAPI, PostgreSQL, Docker, etc.