#!/bin/bash
#
# Monlan can monitor some of your network resources and inform you
# about failures...
#

FLT=0
MLOG='/var/log/unitrace.log'
LLOG='/var/log/unilast.log'

if [ ! -f $MLOG ]; then
        touch $MLOG
fi

while /bin/true; do
   touch $LLOG
    NOW=`date`
    FLT=0
    DNSFLT=0

# Reset last log entry
   echo "Last error: " > $LLOG

# check for nslookup failures
   /usr/bin/nslookup machineinyourdomain | grep 'partofip.i.e.235' 2>&1 > /dev/null
   if [ $? -eq 1 ]; then
        ER="Name lookups on our domain failed on $NOW. "
        echo "$ER" >> $MLOG
        echo "$ER" >> $LLOG
        FLT=1
        DNSFLT=1
   fi
#echo "Fault status $FLT"
   if [ "$FLT" = "0" ] ; then   
#	 echo "Nslookup is well" ;
         for l in machine_list ;
# i.e. rauteg misty raulink rau3 ing1 rkw info raulink caesar.wits.ac.za shannon.ee.wits.ac.za hippo.ru.ac.za ; 
    	do
#               echo "Pinging $l"
		/bin/ping $l -c 5 -n | grep '100%' 2>&1 > /dev/null
		if [ $? -eq 0 ]; then
		ER="Cannot ping $l on $NOW. Possible cable fault or machine failure?"
		echo "$ER" >> $MLOG
      		echo "$ER" >> $LLOG
      		FLT=1
   		fi 
	done
    fi
# Alerter code....

	if [ "$FLT" = "1" ]; then
	   if [ "$DNSFLT" = "0" ] ; then
              echo "." >> $LLOG
              cat $LLOG | /bin/mail -s "Network failure" netadmin@your.site.name
              sleep 240
           fi
	   FLT=0
           DNSFLT=0
	fi
sleep 900 ;
done

