Chi risponde al ping è attivo!

Settembre 22, 2013 0 Di Ruggero Grando

Ho utilizzato il seguente script nella shell bash di un sistema GNU/Linux per verificare la non raggiungibilità di un access point o di una stampante o di un server. Nel caso in cui si verificasse tale condizione ad un indirizzo email specifico presente nella variabile EMAILID verrebbe inviata un “lista” di riepilogo. Tale script potrebbe essere schedulato via Cron per poter girare ogni minuto o quanto definito.

#!/bin/bash
ACCESSPOINT="10.0.0.81 10.0.0.82 10.0.0.83 10.0.0.84 10.0.0.85 10.0.0.86 10.0.0.87 10.0.0.88 10.0.0.89 10.0.0.90
10.0.0.91 10.0.0.92 10.0.0.93 10.0.0.94 10.0.0.95 10.0.0.96 10.0.0.97 10.0.0.98 10.0.0.99 10.0.0.100"
STAMPANTI="10.0.0.142 10.0.0.143 10.0.0.144 10.0.0.145 10.0.0.146 10.0.0.147 10.0.0.148 10.0.0.149"
HOSTS="10.0.0.2 10.0.0.6 10.0.0.7 10.0.0.141 10.0.0.13 10.0.0.200 10.0.0.245 10.0.0.150"
COUNT=1
COUNTB=1
COUNTC=1
SUBJECT="VERIFICA COLLEGAMENTO SERVER, STAMPANTI, ACCESSPOINT"
SUBJECT1="ATTENZIONE GLI ACCESSPOINT NON RISPONDONO AL PING"
SUBJECT2="ATTENZIONE LE STAMPANTI NON RISPONDONO AL PING"
EMAILID="xxxxx@yyyyyy.it"
echo "DATA: $(date)" > attivi.txt
for myHost in $HOSTS
do
count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
if [ $count -eq 0 ]; then
# 100% failed
echo "PC : $myHost non sono attivi (ATTENZIONE ping fallito) al $(date)" >> attivi.txt
fi
done
for myaccesspoint in $ACCESSPOINT
do
countb1=$(ping -c $COUNTB $myaccesspoint | grep 'received' | awk -F',' '{ print $2}' | awk '{ print $1}')
if [ $countb1 -eq 0 ]; then
# 100% failed
echo "ACCESSPOINT : $myaccesspoint non è attivo (ATTENZIONE PING FALLITO) al $(date)" >> attivi.txt
fi
done
for stampantinon in $STAMPANTI
do
countb2=$(ping -c $COUNTC $stampantinon | grep 'received' | awk -F',' '{ print $2}' | awk '{ print $1}')
if [ $countb2 -eq 0 ]; then
echo "STAMPANTI: $stampantinon non è attiva (ATTENZIONE PING FALLITO) al $(date)" >> attivi.txt
fi
done
echo "I SEGUENTI NON ATTIVI:" | mutt -s $SUBJECT $EMAILID -a attivi.txt
rm attivi.txt

Attualmente ho sostituito lo script con le funzionalità di Nagios. Tale software mi permette di controllare in modo efficace quanto accade nella rete aziendale.

No votes yet.
Please wait...