Aqui está um tutorial para criar um script que pode ser usado no Netwatch e programado para reiniciar o Radius em caso de erros de time-out:
Passo 1: Crie um novo script Abra o terminal do Mikrotik e crie um novo script digitando o comando "/system script add name=radius-check source=". Certifique-se de inserir um nome adequado e clique em Enter.
Passo 2: Defina as variáveis Agora, defina as variáveis que o script usará para verificar o Radius. Adicione as seguintes linhas de código:
:local radiusip "IP_DO_SEU_RADIUS"
:local radiusport 1812
Substitua "IP_DO_SEU_RADIUS" pelo endereço IP do seu servidor Radius.
Passo 3: Verifique o Radius Agora, verifique o Radius usando o seguinte código:
/tool fetch url=("http://" . $radiusip . ":" . $radiusport . "/login") mode=http dst-path=radius-check.txt
Este comando tentará se conectar ao seu servidor Radius. Se a conexão for bem-sucedida, um arquivo "radius-check.txt" será criado no diretório padrão.
Passo 4: Verifique se o arquivo foi criado Para verificar se o arquivo "radius-check.txt" foi criado, use o seguinte código:
:delay 5s
:if ([:len [/file find name=radius-check.txt]] = 0) do={
/system script run radius-restart
}
Este comando aguarda 5 segundos e verifica se o arquivo "radius-check.txt" foi criado. Se não foi criado, o script executa outro script chamado "radius-restart" para reiniciar o servidor Radius.
Passo 5: Crie o script de reinicialização do Radius Crie um novo script chamado "radius-restart" e adicione o seguinte código:
/system script run radius-stop
:delay 5s
/system script run radius-start
Este script para o servidor Radius, aguarda 5 segundos e, em seguida, inicia novamente o servidor.
Passo 6: Crie a programação Netwatch Agora, crie uma nova programação Netwatch que executará o script "radius-check" a cada 10 segundos:
/tool netwatch add host=$radiusip interval=10s down-script=radius-restart up-script=radius-check
Este comando adiciona um novo host ao Netwatch e executa o script "radius-check" a cada 10 segundos. Se o host estiver inativo, o script "radius-restart" será executado.
Com este tutorial, você criou um script que pode ser usado no Netwatch e programado para reiniciar o servidor Radius em caso de erros de time-out. Certifique-se de testar o script em seu ambiente antes de implementá-lo em produção.