Ping em lista de IPs

Publicado por Rodrigo de Oliveira (última atualização em 05/11/2009)

[ Hits: 21.656 ]

Download arquivo.sh




Envia um ping para um lista pré-determinada e envia seu resultado para o e-mail do administrador.

Terá que ser criado um arquivo chamado list1.txt, com os IPs que deseja monitorar.

  



Esconder código-fonte

#!/bin/bash
List=list1.txt
echo "Data e Horario:`date`" >> /tmp/arquivo`date +%d`
cat $List | while read ip
do
ping -c3 $ip > /dev/null
if [ $? = 0 ]; then
echo "pingou $ip" >> /tmp/arquivo_`date +%d`
else
echo "não pingou $ip" >> /tmp/arquivo_`date +%d`
fi
done
mail -s "Resposta dos pings" adt.rodrigo@gmail.com < /tmp/arquivo`date +%d`

Scripts recomendados

Jogo da Velha para 2 jogadores

Teste de velocidade de conexão via FTP e registro em log

Extração do áudio de um DVD

Backup em fita com tar e mt

Monitorando acessos on-line em log do squid com autenticação.


  

Comentários
[1] Comentário enviado por rodrigo_leonel em 09/11/2009 - 10:26h

O comando mail não funcionou.

[2] Comentário enviado por jackadamantina em 09/11/2009 - 11:41h

O comando mail, geralmente está em /usr/bin/mail. Procure, se este comando está no local indicado. Qual o erro que é mostrado ao se utilizar o comando mail, ele não executa ou gera um erro? Poste aqui no VOL.

[3] Comentário enviado por markouh em 05/12/2009 - 13:01h

Esse script foi de muita utilidade, agora tenho uma duvida.

Em alguns casos, os ips só respondem ao comando ARP, nesse script ele vai ignorar e dizer que o ip não pingou. Teria alguma forma de incrementar isso no script para ele responder como "só responde a ARP" ?

[4] Comentário enviado por heliogiffoni em 25/11/2013 - 11:08h

Cara, sei que faz tempo mais que puder ajudar eu agradeço,

quando executo o script ele diz:

@heliogiffoni-PC:~$ /scripts/sistema.sh
cat: lista1.txt: Arquivo ou diretório não encontrado

e existe essa lista criada dentro da mesma pasta e o caminho do script está esse :
List=lista1.txt

já tentei:

List=/scripts/lista1.txt

e nada

????


[5] Comentário enviado por r2xlr em 14/06/2017 - 12:52h

Cara, cria um arquivo no diretório atual mesmo, faz o seguinte:

#!/bin/bash
ListaHosts=hosts.txt
diretorio=$(pwd)
Arquivo=monitoracao-`date +"%Y-%m-%d"`.txt


echo -e "\nData e Horário: `date`" >> $Arquivo
echo -e "\n"

cat $ListaHosts | while read ip
do
ping -c1 $ip > /dev/null
if [ $? = 0 ]; then
echo "OK: $ip" >> $Arquivo
else
echo "FAILED $ip" >> $Arquivo
fi
done

sort $Arquivo

[6] Comentário enviado por ironf15 em 04/02/2018 - 13:34h

Muito obrigado.

Editei o meu, segue para consulta futura:

#!/bin/bash
List=/home/user/Documents/ips_list.txt
echo "Date & Hour: `\date "+%H:%M:%S - %d %B %Y - %a"`" >> /home/user/Documents/Ping-Test
cat $List | while read ip
do
ping -c 5 $ip > /dev/null
if [ $? = 0 ]; then
echo "Ping OK: $ip" >> /home/user/Documents/Ping-Test
else
echo "Dont response $ip" >> /home/user/Documents/Ping-Test
fi
done

Mais uma vez obrigado, abs.

José Oliveira


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts