#!/bin/sh

# Name		: /public/scripts/chkpsdm
# Purpose	: Monitoring which daemons are up
# By		: Yariv Sheizaf
# Date		: 12-Aug-2001

## Define hostname and administrator login for sending email
HOST=`hostname`
admin=yariv@globecom-interactive.com

## Define report files
CURFILE=/tmp/$$.chkpsdm.cur
PREFILE=/tmp/$$.chkpsdm.pre
DIFFILE=/tmp/$$.chkpsdm.dif

\rm -f $DIFFILE $PREFILE $CURFILE
touch $DIFFILE $PREFILE $CURFILE

## main loop
while true
do
	sleep 10

	\rm -f $DIFFILE $PREFILE
	mv $CURFILE $PREFILE


## Create report file of running processes
	PROCF=/tmp/procfil$$
	ps -ef -o args >$PROCF

	for i in Npdd Lsm http java startTrap startIsAli startWeb sdud sdad rmserver
	do
	        grep $i $PROCF | awk '{print $NF}' | sort | uniq >> $CURFILE
	done

## Compare current Globecom services status with previous interval's status        
## Send email to administrator if the status was changed during this interval
        diff $CURFILE $PREFILE > $DIFFILE
        ISDIFF=`wc -l $DIFFILE | awk '{print $1}'`
        if [ "$ISDIFF" != "0" ]
        then	
	 	/usr/ucb/mail -s " Globecom services change report on - $HOST " $admin <<- EOF
	 	`diff $CURFILE $PREFILE`
		EOF
		
		\rm -f $DIFFILE
		touch $DIFFILE
	fi
done

## Remove temporary files   
\rm -f $CURFILE $PREFILE $DIFFILE
                
exit 0