Boa noite, vou compartilhar um script de aviso de manutenção que eu uso aqui já a algum tempo e roda 100%.

Bem o script roda no mk-auth com rotina do cron, funciona assim, o script pinga o determinado host, se o ping falhar ele executa o comando ssh nos ramais para ativar a pagina de manutenção, se pigar ele desativa a pagina (regra do nat que redireciona para a pagina) ok

1º tem que ter a regra do nat com o comentario manutencao nos ramais (se tiver mais de um).

2º o ssh tem que está funcionando corretamente entre o mk-auth e os mikrotiks.

vou explicar como funciona o script e como altera-lo:

#############EXEMPLO###########

#!/bin/bash

#AQUI COLOQUE O IP QUE DESEJA PINGAR (NESSE CASO DNS GOOGLE)
host="8.8.8.8"

#COMANDO PARA HABILITAR A REGRA DE NAT

comando1="/ip firewall nat enable [find comment="manutencao"]"

#COMANDO PARA DESABILITAR A REGRA DE NAT

comando2="/ip firewall nat disable [find comment="manutencao"]"

mikrotik=("172.20.10.4")    # RAMAL 1
mikrotik[1]="172.20.10.5"  # RAMAL 2
mikrotik[2]="172.20.10.6"  # RAMAL 3
mikrotik[3]="172.20.10.7"  # RAMAL 4
mikrotik[4]="172.20.10.8"  # RAMAL 5
mikrotik[5]="172.20.10.9"  # RAMAL 6

for ramal in "${mikrotik[@]}"; do
 
if ! ping -c 4 $host >/dev/null; then

#comando ssh, altera a porta ssh em "-p1122"
sudo ssh -l mkauth $ramal -p1122 "$comando1"
else
sudo ssh -l mkauth $ramal -p1122 "$comando2"
fi
done

################EXEMPLO###########

adcione os ramais seguindo a lógica mikrotik[6]="ip do ramal" ,  se só tem 1 ramal apague os outros e deixe só a primeira linha ex: mikrotik=("172.20.10.4")  

a regra de nat para o mikrotik:

bem aqui eu faço assim:

em ip firewall addres-list criei uma lista com nome "sites_liberados" e coloco alguns ips que ficam fora da regra incluindo o ip do mk-auth exemplo: o ip do meu mk-auth é 172.40.10.2 então fica assim:

/ip firewall address-list
add address=172.40.10.2 disabled=no list=sites_liberados

na regra do nat eu deixo a porta ssh no meu caso "1122" e a do winbox no meu caso "8294" ficam fora da regra tambem, então fica assim:

/ip firewall nat
add action=dst-nat chain=dstnat comment=manutencao disabled=yes dst-address-list=!sites_liberados dst-port=!1122,8294 \
    protocol=tcp to-addresses=172.40.10.2 to-ports=89

(edite essas regras se for usar, ip do mk-auth e as portas ssh e winbox, é importante que o comment="manutencao" esteja escrito igual o do script manutencao.sh, não use caractres como "Ç ~" ex: "manutenção" pode dar erro)

o script como ele é pequeno vou colocar abaixo mais tambem está em anexo como txt, copie e cole no bloco de notas e edite conforme sua rede depois salve como "manutecao.sh" sem aspas, copie para /usr/local/mkauth/scripts do seu mk-auth, dê permissão 777 depois crie o agendamento no cron

pelo putty com o comando

crontab -e

0-50/2 * * * * /usr/local/mkauth/scripts/manutencao.sh

salve e pronto.

script manutencao.sh

########## começa aqui ##############

#!/bin/bash


host="8.8.8.8"

comando1="/ip firewall nat enable [find comment="manutencao"]"

comando2="/ip firewall nat disable [find comment="manutencao"]"

mikrotik=("172.20.10.4")  
mikrotik[1]="172.20.10.5" 
mikrotik[2]="172.20.10.6" 
mikrotik[3]="172.20.10.7" 
mikrotik[4]="172.20.10.8" 
mikrotik[5]="172.20.10.9" 

for ramal in "${mikrotik[@]}"; do
 
if ! ping -c 4 $host >/dev/null; then
sudo ssh -l mkauth $ramal -p1122 "$comando1"
else
sudo ssh -l mkauth $ramal -p1122 "$comando2"
fi
done

########## termina aqui ###############

Bem é isso, fica ai a idéia para o bom desenvolvimento espero que ajude bastante,

um abraço a todos.

manutencao.txt

Para adicionar comentários, você deve ser membro de MK-AUTH.

Join MK-AUTH

Votos 0
Enviar-me um email quando as pessoas responderem –

Respostas

  • amigo esse agendamento é 2 aegundos?

    0-50/2 * * * * /usr/local/mkauth/scripts/manutencao.sh


    Edson Pereira disse:

    amigo qual o tempo pra execução desse agendamento ? 

    0-50/2 * * * * /usr/local/mkauth/scripts/manutencao.sh

  • amigo qual o tempo pra execução desse agendamento ? 

    0-50/2 * * * * /usr/local/mkauth/scripts/manutencao.sh

  • pode min add pra tirarmos uma duvida sobre http://mk-auth.com.br/forum/topics/contribui-o-script-aviso-de-manu... ........ como faço editar o crontab -e eu salvo mas quando entro dinovo ele nao esta mais la a regrinha porq ?

  • acompanhando...

  • vlw

  • vlw...

This reply was deleted.