#!/bin/sh # # iostat: Sun Enterprise Server check - BB external script test # # version 1.0 # version 2.0 - now performs status check on vmstat results. # will now take over a minute and a half to run however. # version 2.1 - now runs iostat in a more efficient manner # version 2.2 - properly uses $CAT instead of cat # version 2.3 - properly uses $MACHINE instead of `uname -n` in bb-hosts check # version 2.4 - looks to see if $IOSTAT is set - for Linux mostly. # version 2.5 - properly uses $THIS_HOST instead of $MACHINE due to fqdn using comma in name - thanks Craig Cook # version 2.6 - properly works for HP-UX now # # BIG BROTHER / XXXXXXXXXXXXXXXX status # # Written by Paul A. Luzzi # on March 22, 2000 # ######################################## # NOTE # This has been tested with BB 1.2b # # Tested on : # Sun E3000, E3500, E3501, E4500, E4501 ######################################## ######################################## # INSTALLATION # step 1 - update the EXT section of the runbb.sh script to include this # ... ######################################## ################################## # CONFIGURE IT HERE ################################## ################################## # Start of script ################################## if test ! "$BBHOME" then echo "template: BBHOME is not set" exit 1 fi if test ! -d "$BBHOME" then echo "template: BBHOME is invalid" exit 1 fi if test ! "$BBTMP" # GET DEFINITIONS IF NEEDED then echo "template: The BB environment is not set" exit 1 fi ##### ##### Start of custom section added by Paul A. Luzzi ##### ##### ##### Get Status proc - used to get all responses ##### get_status() { ##### ##### Setup any and all variables before beginning. ##### ##### ##### Section copied from script originally written by Mike Arki ##### Modified extensively on 03-22-2000 by Paul A. Luzzi ##### for use with Big Brother ##### ##### Purpose is to report back to a central server, all "standard" ##### detailed information about network, disk, volume, cpu, memory ##### which is not reported thru regular "easy" checks. ##### ##### Any problem areas should be highlighted in : ##### bold, italics, and red font. ##### ##### ##### Setup some variables for use later ##### COLOR="green" ##### ##### System Resource Monitoring ##### echo "
" CATCH_COMMAND=` $VMSTAT 2 10 > /tmp/$THIS_HOST.iostat.log ` RESULT_FLAG="$?" COMMAND_1=` $CAT /tmp/$THIS_HOST.iostat.log | $AWK '{print $1}' | $TAIL -9 ` COMMAND_2=` $CAT /tmp/$THIS_HOST.iostat.log | $AWK '{print $2}' | $TAIL -9 ` COMMAND_3=` $CAT /tmp/$THIS_HOST.iostat.log | $AWK '{print $3}' | $TAIL -9 ` ## COMMAND_8=` $CAT /tmp/$THIS_HOST.iostat.log | $AWK '{print $8}' | $TAIL -9 ` COMMAND_9=` $CAT /tmp/$THIS_HOST.iostat.log | $AWK '{print $9}' | $TAIL -9 ` COMMAND_12=` $CAT /tmp/$THIS_HOST.iostat.log | $AWK '{print $12}' | $TAIL -9 ` if [ "$RESULT_FLAG" = "0" ] then ##### ##### Echo the results first ##### $CAT /tmp/$THIS_HOST.iostat.log echo "" ##### ##### Check for run queue length ##### for VALUE in $COMMAND_1 do if [ "$VALUE" -gt "5" ] then COMMAND_1_RESULTS="$VALUE" COLOR="yellow" fi done ##### ##### Check for blocked processes ##### for VALUE in $COMMAND_2 do if [ "$VALUE" -gt "5" ] then COMMAND_2_RESULTS="$VALUE" COLOR="yellow" fi done ##### ##### Check for runnable but swapped processes ##### for VALUE in $COMMAND_3 do if [ "$VALUE" -gt "5" ] then COMMAND_3_RESULTS="$VALUE" COLOR="yellow" fi done ##### ##### Check for page in processes ##### ## for VALUE in $COMMAND_8 ## do ## if [ "$VALUE" -gt "10" ] ## then ## COMMAND_8_RESULTS="$VALUE" ## COLOR="yellow" ## fi ## done ##### ##### Check for page out processes ##### for VALUE in $COMMAND_9 do if [ "$VALUE" -gt "10" ] then COMMAND_9_RESULTS="$VALUE" COLOR="yellow" fi done ##### ##### Check for high scan rate ##### for VALUE in $COMMAND_12 do if [ "$VALUE" -gt "10" ] then COMMAND_12_RESULTS="$VALUE" COLOR="yellow" fi done ##### ##### If any are "warnable" then do so. ##### if [ "$COMMAND_1_RESULTS" -gt "0" ] then echo "There's $COMMAND_1_RESULTS processes in run queue." fi if [ "$COMMAND_2_RESULTS" -gt "0" ] then echo "Ther's $COMMAND_2_RESULTS blocked processes." fi if [ "$COMMAND_3_RESULTS" -gt "0" ] then echo "There's $COMMAND_3_RESULTS runnable, but swapped processes." fi ## if [ "$COMMAND_8_RESULTS" -gt "0" ] ## then ## echo "There's $COMMAND_8_RESULTS page-in processes going on." ## fi if [ "$COMMAND_9_RESULTS" -gt "0" ] then echo "There's $COMMAND_9_RESULTS page-out processes going on." fi if [ "$COMMAND_12_RESULTS" -gt "0" ] then echo "There's a scan rate of $COMMAND_12_RESULTS present." fi else COLOR="red" echo "Problem with virtual memory or command !!!" fi echo "" ##### ##### System Resource Monitoring ##### if [ ! -z "$IOSTAT" ] then echo "
" if [ "$?" = "0" ] then echo "$CATCH_COMMAND" else COLOR="red" echo "Problem with iostat !!!" fi echo "" fi ##### ##### Make sure to export COLOR so that it gets back to "central" ##### export COLOR ##### ##### End of get_status proc ##### } ##### ##### Main body ##### touch /tmp/$THIS_HOST.iostat $GREP $THIS_HOST $BBHOSTS | $GREP "iostat" | while read line do if [ ! -z "$line" ] then echo "