Ping em lista de IPs

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

[ Hits: 22.102 ]

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

VIM Colorido

Adição automática dos repositórios do Google Chrome, Google Talk Plugin, Google Earth, Dro no Ubuntu

Conversor de vídeo com opção de legenda

Script para módulo de bateria do GKrellm

Ordenação de Bytes por Swap Nibble


  

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