Script bash per la scansione e monitor di rete


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

Loading