msoliver
(usa Debian)
Enviado em 05/04/2016 - 02:32h
rodrigoviniciusm escreveu:
Olá galera do VOL, estou com dificuldades em criar um script que consiga ler alguns ips, fazer a checagem da situação atual e anterior e realizar a ação, se ficou UP manda e-mail se ficou down manda e-mail.
Consegui fazer com apenas 1 host, eu poderia criar vários arquivos para essa monitoração, mas ficará complicado para outra pessoa dar continuidade.
Alguém pode me dar uma dica?
#!/bin/bash -x
# Variaveis:
HOSTS=10.1.1.194
COUNT=4
ONLINE=0
while true;do
#Inicio do codigo:
for myHost in $HOSTS
do
count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
if [ $count -ne 0 ] && [ $ONLINE -ne 1 ]; then
# echo "Teste: $myHost esta online" >> /usr/local/bin/log.txt
echo "Alarme $myHost esta ligado" | mail -s "Alarme Teste" meue-mail@gmail.com
ONLINE=1
fi
if [ $count -eq 0 ] && [ $ONLINE -ne 0 ]; then
echo "Teste: $myHost esta desligado" >> /usr/local/bin/log.txt
ONLINE=0
fi
sleep 10
done
done
Bom dia!!!
Segue uma dica para efetuar o PING sequencialmente . . .
Crie um arquivo de texto com os IP'S que quer testar, um em cada linha, depois faça:
while read IP;do
count=$(ping -c4 $IP | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
CONTINUE SEU SCRIPT
.
.
done < listagem_ip.txt
Ou
HOST="192.168.0."
#Ajuste o "
255 ", limitador do x, para a sua necessidade.
for ((x=1;x<
255 ;x++));do
ping -c4 "$HOST""$x"
CONTINUE SEU SCRIPT
.
.
done
Simplificando o seu SCRIPT
#!bin/bash
#######################
## marcelo oliver ##
## Abril/2016-Rev:00 ##
#######################
#AJUSTE HOSTS PARA A SUA REDE.
HOSTS="192.168.0"
#AJUSTE "NN" PARA A SEQUENCIA DE IP's
NN="32"
#AJUSTE O "x=1" PARA O IP INICIAL.
#SE NÃO FOR NA SEQUENCIA, troque a linha "for ((x=1;x<=NN;x++));do" por
#for x in 194 197 199 200;do
for ((x=1;x<=NN;x++));do
if ping -c1 "$HOSTS"."$x" > /dev/null;then
echo "Alarme "$HOSTS"."$X" esta ONLINE" | mail -s "Alarme Teste" meue-mail@gmail.com
else
echo "Teste: "$HOSTS"."$X" esta OFFLINE" >> log.txt
fi
done
É isso...
----------------------------------------------------------------------------------------
Se resolver, marque como resolvido, por favor.
Gostando da resposta, marque-a como a MELHOR, dessa forma, ganho uns pontinhos,
o que incentiva a continuar colaborando, ajudando, participando e compartilhando conhecimentos . . . :)
----------------------------------------------------------------------------------------
Abç.:
Marcelo