Solução para provedores - Receber aviso no celular quando ocorrer perda de pacote, hosts parados ou pacotes duplicados

Uma das grandes preocupações dos provedores é identificar o exato instante em que um servidor ou uma Access Point travou. Neste artigo vou disponibilizar o código fonte de um programa que envia mensagens para e-mail ou celular quando um host remoto parar de responder, quando estiver com perda de pacotes ou pacotes duplicados.

[ Hits: 45.426 ]

Por: Djair Dutra C. Jr. em 24/07/2006


Script que verifica os hosts e envia os e-mails



Copie todo o script abaixo para um arquivo. Dê a este arquivo o nome de "verificador" e transforme-o em executável através do comando:

# chmod a+rwx verificador

#!/bin/sh

########################################
# Script para verificação de Hosts
########################################
# Desenvolvido inicialmente por Djair Dutra C. Jr.
# (djairdutra[at]hotmail.com)
# Versão 0.01
# 27/06/2006
########################################
# Eventuais alterações devem ser feitas logo abaixo com
# data, resumo da alteração, autor e e-mail.


quantmail=`cat mail.conf | grep "@" | wc -l`
quanthost=`cat hosts.conf | wc -l`

if [ "$quanthost" == "0" ]; then
dialog --stdout --msgbox "Não há hosts cadastrados para verificação." 0 0
fi

if [ "$quantmail" -gt "1" ]; then
   for i in `cat mail.conf`;do
   destino=$i,$destino
   done
elif [ "$quantmail" == "1" ]; then
   destino=`cat mail.conf`
else
   dialog --stdout --msgbox "Não há e-mail cadastrado para envio." 0 0
   exit
fi

checa(){
for i in `cat hosts.conf | cut -d , -f 1`;do
   tam=`cat hosts.conf | grep -w $i | cut -d , -f 2`
   qtd=`cat hosts.conf | grep -w $i | cut -d , -f 3`
   min_per=`cat hosts.conf | grep -w $i | cut -d , -f 4`
   min_dup=`cat hosts.conf | grep -w $i | cut -d , -f 5`
   nome=`cat hosts.conf | grep -w $i | cut -d , -f 6`

ping -c $qtd -s $tam $i > ping.tmp
cat ping.tmp | grep icmp_seq | grep time | grep ms > ping.ok
cat ping.tmp | grep icmp_seq | grep time | grep ms | grep -i DUP > ping.dup
result=`wc -l ping.ok | cut -d ' ' -f1`
perda=`expr $qtd - $result`
dup=`wc -l ping.dup | cut -d ' ' -f1`

if [ "$perda" == "$qtd" ]; then
echo "O Servidor $nome ($i) está PARADO!" | mail -s "SERVIDOR PARADO." $destino
else
   if [ "$perda" -gt "$min_per" ]; then
   echo "O Servidor $nome ($i) está com perda de pacote.
Env:$qtd
Per:$perda" | mail -s "PERDA DE PACOTES" $destino
   fi
fi

if [ "$dup" -gt "$min_dup" ]; then
echo "O Servidor $nome ($i) está com excesso de pacotes duplicados.
Env:$qtd
Dup:$dup" | mail -s "PACOTES DUPLICADOS" $destino
fi

done
rm -rf ping.tmp
}

checa
Página anterior     Próxima página

Páginas do artigo
   1. Entendendo como o programa funciona
   2. Script que cadastra os hosts e os e-mails para receberem aviso
   3. Script que verifica os hosts e envia os e-mails
   4. Criando o regra no crontab
   5. Inserindo os dados necessários para a verificação
   6. Sobre o programa
Outros artigos deste autor

Estamos mais "INGNORANTES"?

Conhecimento x Soberba

Esqueça tudo e venha para o Linux!

Controle de clientes e acessos no Squid

A verdade sobre as ACLs do Squid

Leitura recomendada

Minha caixa de ferramentas no GNU/Linux

XML de NF-e ou CT-e ou MDF-e - Como validar usando os pacotes de esquemas do Governo

Como configurar o servidor de correio eletrônico Postfix

Desinstalando todos os programas instalados a partir de uma data específica

Alternância de GPU em notebooks Core-i

  
Comentários
[1] Comentário enviado por tomas em 25/07/2006 - 10:13h

Cara, muito bom esse script.
Continua evoluindo ele. Quem sabe ele não ganha força e tamanho e acaba virando um projeto maior, com página e tudo.
Ai mais pra frente ganha uma interface gráfica, que pode até ser via script mesmo, tipo zenith no gnome.
Parabéns.

[2] Comentário enviado por leolinux em 25/07/2006 - 10:49h

só um detalhe para celulares tim tbm tem o serviço de e-mail. fica assim [email protected]

[3] Comentário enviado por removido em 25/07/2006 - 13:09h

.

[4] Comentário enviado por internero em 25/07/2006 - 13:58h

No caso da tim o usuario tem que se cadastrar e pode, inclusive, escolher um nome de usuario diferente do numero do celular (ex: [email protected]).

unico senão é que esse serviço é pago... voce apenas recebe uma notificação, mas para ler a mensagem há tarifação.

[5] Comentário enviado por malacker em 25/07/2006 - 16:41h

Aê galera!

Depois que o artigo saiu, percebi que algumas linhas vieram quebradas. Eventuais problemas na execução do script, provavelmente serão por conta destas quebras. Quem desejar, posso enviar um e-mail com os arquivos originais.
Em relação ao envio das mensagens quem não tiver operadora ou celular com este recurso pode enviar uma mensagem para o hotmail, por exemplo. Você fica sabendo do recebimento do e-mail no exato momento, através do Messenger, ou aMSN (no Linux).

[6] Comentário enviado por Raid_Zer0 em 25/07/2006 - 19:33h

Pessoal, qualquer coisa que sirva de ajuda a todos os admins de plantão, que facilite nossas vidas, é muito bem-vindo! Só peno por um tutorial mais detalhado das duas ferramentas, de como elas funcionam, quais suas dependencias, etc!
Abraços!

[7] Comentário enviado por TheHawk em 26/07/2006 - 07:36h

Só está faltando no seu script fazer ele gerar uma pagina HTML, tipo o software monesa, para q se tenha um controle em uma pagina tambem, ai ficaria bem completo.

[8] Comentário enviado por Goofynho em 26/07/2006 - 11:03h

legal

[9] Comentário enviado por mgdias em 01/05/2007 - 21:07h

Fiz uma daptação do código e já monitoro a saida em uma pagina na intranet !!!

[10] Comentário enviado por jogador em 11/05/2007 - 12:58h

a vivo tbm tem o serviço

[email protected]

amazoniacelular tbm

[email protected]*

*so pra quem é assinante iamazonia.

abs

[11] Comentário enviado por [email protected] em 20/11/2007 - 14:47h

b

[12] Comentário enviado por fhvieira em 25/06/2008 - 13:45h

[: 161: ==: unexpected operator

quando executo abre normal, na hora de cadastrar host da esse erro

[13] Comentário enviado por tecnet em 04/08/2009 - 22:03h

MQDIAS,
Poderia enviar pra gente esta adapcao, Obrigado.

vlw.


Contribuir com comentário