#! /bin/sh #================================================================= # # I/O Checker (KBPS) # This Script uses iostat to monitor disk io # Useful for notifications of disk thrashing. # # Authors: TheRocker # SpEnTBoY # # Email: therocker@pawprints.2y.net # lonny@abyss.za.org # #================================================================ NUMBER1=`rsh $1 -l root iostat -d | grep -e "hdisk" | tr -s ' ' | cut -d' ' -f2 | sort -2 -r | cut -c1 | line` NUMBER2=`rsh $1 -l root iostat -d | grep -e "hdisk" | tr -s ' ' | cut -d' ' -f2 | sort -2 -r | cut -c2 | line` TMPFILE=/tmp/iotest.hndl TMPTOO=/tmp/iotwo.hndl #=========================================================== # # We do an evaluation on $NUMBER1 and $NUMBER2 to see if # disk io is exceeding 40%. # #=========================================================== if [ "$NUMBER1" -gt 4 ] && [ "$NUMBER2" -gt 0 ] then `rsh $1 -l root iostat -d | grep -v cd0 | tr -s ' '| cut -d' ' -f1,2 | grep -e "4[0-9]." >> $TMPFILE` #==================================================================== # # Of course, there may be more than one hard disk on the node # so we use this bit of code to report on more than one instance # of excessive disk IO. # #==================================================================== LINES=`wc -l /tmp/iotest.hndl | cut -c8` LINESCTL=`wc -l /tmp/iotest.hndl | cut -c8 ` echo "WARNING!!! Disk I/O Exceeding 40% on --> \c" while [ $LINESCTL != 0 ] do cat $TMPFILE | tail -$LINESCTL > $TMPTOO cat $TMPTOO > $TMPFILE LINESCTL=$(( $LINESCTL -1 )) LINES=$(( $LINES -1 )) DATA=`head -1 /tmp/iotest.hndl` echo "( $DATA ) " done echo "\n" rm -f $TMPFILE rm -f $TMPTOO exit 1 else print "No Disk I/O Exceeding 40%...OK" exit 0 fi