Já tem muitas pessoas fazendo script no mikrotik que ficam monitorando a máquina de cache por ping, caso ela pare de responder, digamos que ela trave, então as regras de redirecionamento são automaticamente desativadas para que não de problemas com navegação dos clientes.
Mas digamos que o serviço pare, a máquina irá continuar respondendo a ping, então os script abaixo pode resolver isso.
Criando os arquivos
vi /usr/local/thunder/sbin/MoniThunder
Adicione o conteúdo abaixo.
#!/bin/sh
##############################
# Script Desenvolvido por:
# Fabio Farias - [email protected]
# Uso Livre
strProcess=thunder
while true
do
ps cax | grep $strProcess > /dev/null
if [ $? -eq 0 ]; then
echo "Processo Rodando."
if [ "$n" == "Parado" ]
then
echo "Executar ctfw"
/usr/local/etc/rc.d/ctfw restart
if [ $? -eq 0 ]; then
n='Rodando'
fi
fi
else
echo "Processo Parado."
if [ "$i" == "ipfw" ]
then
echo "Verifica se Processo voltou"
# Para tentar voltar o processo retire o comentario da linha abaixo. Mas acredito que seja melhor analizar por que parou!
#/usr/local/etc/rc.d/thundercache start
n='Parado'
else
echo "Executa IPFW"
gw=`netstat -nr | grep default | awk '{print $2}'`
/sbin/ipfw add deny icmp from $gw to me
i='ipfw'
fi
fi
sleep 10
done
exit 0
Basta dar permissão de execução ao arquivo
chmod +x /usr/local/thunder/sbin/MoniThunder
Agora para que o script inicie sozinho você pode fazer o seguinte
Crie um arquivo executável no seguinte caminho, /usr/local/etc/rc.d/monitoramento
Com o Conteúdo abaixo
#!/bin/sh
#
# Monitoramento do Thunder - Farias
#
. /etc/rc.subr
name="MoniThunder"
start_cmd="${name}_start"
MoniThunderdesc="Monitor de Processo Thunder"
MoniThundercmd="/usr/local/thunder/sbin/MoniThunder"
MoniThunder_start()
{
echo "Starting $MoniThunderdesc..."
$MoniThundercmd &
exit $?
}
load_rc_config $name
run_rc_command "$1"
Espero que ajude aqueles que não conhecem essas funções.