Postado originalmente por
roneyeduardo
while :
do
ping -c "IP DO CLIENTE 1"
if [ $? = 1 ]; then
ping -c "IP DO CLIENTE 2"
if [ $? = 1 ]; then
sshpass -p "SENHA" ssh root@"IP DO AP" reboot
echo "AP XXX Reiniciado em $(date)" >> /var/log/rebootAP.log
sleep 120
fi
fi
sleep 5
done
EXPLICANDO: Esse script fica em loop infinito, fazendo testes de ping em dois clientes (que estão conectados ao AP que você está monitorando). Caso ele não pingue no primeiro cliente, ele vai tentar pingar no segundo. Ai sim, se ele não pingar no segundo, ele vai mandar o comando de reboot ao AP. Depois que ele dá o reboot no AP, ele espera 120 segundos (que é um pouco a mais que o tempo necessário para o Zinwell rebootar e voltar a ativa) e depois volta a fazer os testes de ping. Caso tudo esteja correto, ou seja, os clientes estejam no ar, ele espera 5 segundos (sleep 5) para fazer a checagem de novo.
Como esse script roda em loop infinito, eu executo ele jogando-o pra background, assim:
./script > /dev/null 2>&1
Você pode colocar o comando no /etc/rc.d/rc.local para executar na inicialização do servidor.
Note que é necessário o programa sshpass.
Tutorial pra instalar ele:
http://wiki.under-linux.org/index.ph...elnet/sshspass
Espero que tenha ajudado. Falows.