Questo articolo fornisce alcuni semplici script per eseguire la scansione di rete e di monitoraggio. Ovviamente, questi script non sono a partità di sistemi software per il monitoraggio di rete dedicato ma potrebbero essere utili per le piccole reti.
Scansione subnet di rete 192.168.1.1-255/24:
#!/bin/bash
#
ls_ping()
{
ping -c 1 $1 > /dev/null
[ $? -eq 0 ] && echo Host con IP: $i attivo.
}
for i in 192.168.1.{1..255}
do
ls_ping $i & disown
done
Esecuzione:
./pingls.sh
OUTPUT:
Host con IP: 192.168.1.1 attivo. Host con IP: 192.168.1.50 attivo.
Oppure:
#!/bin/sh
: ${1?"Usare: $0 seguito dall'ip come: es. '192.168.1.'"}
subnet=$1
for addr in 'seq 0 1 255 '; do
# ( echo $subnet$addr)
( ping -c 3 -t 5 $subnet$addr > /dev/null && echo $subnet$addr ATTIVO ) &
done
Notifica quando il server è giù :
#!/bin/bash
#
: ${1?"Usare: $0 ip o nome host da controllare es. '192.168.1.100' 'google.com'"}
for i in $@
do
ping -c 1 $i &> /dev/null
if [ $? -ne 0 ]; then
echo "'date': ping fallito, $i host spento!" | mail -s "$i host spento!" vostroindirizzo@email.it
fi
done
Esecuzione script :
./controllo_hosts.sh 192.168.1.100 192.168.1.152 google.com
Creare un registro di monitoraggio:
#!/bin/bash
#
: ${1?"Usare: $0 ip o nome host da controllare es. '192.168.1.100' 'google.com'"}
LOG=/tmp/controllo-stato-server.log
TEMPOINSECONDI=3600
EMAIL=vostroindirizzo@email.it
for i in $@; do
echo "$i-ON!" > $LOG.$i
done
while true; do
for i in $@; do
ping -c 1 $i > /dev/null
if [ $? -ne 0 ]; then
STATUS=$(cat $LOG.$i)
if [ $STATUS != "$i-OFF!" ]; then
echo "'date': ping fallito, $i host spento!" |
mail -s "$i host spento!" $EMAIL
fi
echo "$i-OFF!" > $LOG.$i
else
STATUS=$(cat $LOG.$i)
if [ $STATUS != "$i-ON!" ]; then
echo "'date': ping OK, $i host acceso!" |
mail -s "$i host acceso!" $EMAIL
fi
echo "$i-ON!" > $LOG.$i
fi
done
sleep $TEMPOINSECONDI
done
Esecuzione script:
./controllo-stato-server.sh 192.168.1.2 mioserver google.com
![]()