Monitorar hosts por meio de ping

Depois de publicar aqui o meu script em bash para Enviar comando via SSH para Mikrotik, compartilho com os leitores do blog outr script em bash que na verdade não sou seu verdadeiro autor, confesso. Porém já fica difícil dar os devidos créditos, pois já o uso há algum tempo e perdi as referências que usei para montá-lo, caso volte a encontrá-las atualizarei o post com as informações completas, peço desculpas desde já.

Este script parte do princípio do mesmo já citado anteriormente, temos uma lista de hosts em um arquivo separado de nome “hosts.txt” – mas nada impede de usarmos o mesmo arquivo criado anteriormente – lembrando que devemos inserir um ip por linha dentro deste arquivo.

Um requisito não obrigatório mas muito interessante é que tenhamos no micro/servidor onde executaremos este script um servidor Sendmail instalado e funcional, pois desta forma o script enviará um e-mail de alerta para o endereço cadastrado quando houverem falas de ping; caso não tenhamos um servidor de e-mail configurado nosso script apenas irá gerar os logs de registro.

Pois bem, com os ip’s dos hosts devidamente cadastrados em nosso arquivo, podemos fazer nosso script conforme abaixo; com estas configurações ele irá executar um teste de ping enviando 4 requisições para cada host, em caso de falha será gerado um log para podermos analisar e termos os registros para análise. Como dito anteriormente, se possuirmos um servidor de e-mail rodando em nossa máquina, também será enviado um e-mail de alerta a cada falha.

Com o script devidamente configurado, uma boa opção é deixá-lo programado em nosso crontab com intervalos regulares, de 1, 5 ou talvez 10 minutos (fica a seu critério) para termos nossa monitoria constante.

Este script fica como alternativa para diversos sites e serviços de uptime que vemos na Internet, muitos deles sendo até mesmo pagos, acreditem, alguns fazem simplesmente só isso.

Fica aqui registrada a dica de mais um bash script, por mais simples que seja, sempre serve ao menos para o nosso aprendizado. Se quiser sugerir algo, mandar um “Hello, world!” ou mesmo reclamar, me siga no Twitter.

Tagged with 
  • RJardim

    sei que o post é antigo mas estou utilizando ele com envio de sms através do bash, se tiverem interesse posso postar a solução aqui.

    • Greyson Farias

      manda aí brow a solução e a propósito, testei o script e ele retorna este erro:
      ./monitor.sh: line 20: erro de sintaxe próximo do token' não esperado count=$(ping -c $COUNT $myHost | grep ‘received’ | awk -F’,’ ‘{ print $2 }’| awk ‘{ print $1 }’)’
      ./monitor.sh: line 20: ` count=$(ping -c $COUNT $myHost | grep ‘received’ | awk -F’,’ ‘{ print $2 }’| awk ‘{ print $1 }’)’

      você sabe dizer como resolver?