return to PRS Technologies website


check_unix_free_percent1_hp.sh
#!/usr/bin/ksh ################################################################################ # # Module: check_unix_free_percent1_hp.sh # # Description: Check Unix free disk percent info for HP/UX # # Author: Peter R. Schmidt # # Argument 1 = Warning Limit (percent free) a number between 1 and 100 # Argument 2 = Emergency Limit (percent free) a number between 1 and 100 # Argument X = -i [list of filesystems to include] # -e [list of filesystems to exclude] # # IMPORTANT - The limits that you specify are the minimum PERCENT FREE. For example, # check_unix_free_percent1_hp 25 10 # means: warn me FREE SPACE falls BELOW 25% and # declare an emergency if FREE SPACE falls BELOW 10% # # Change Log # # Date Person Description # # 03/07/2001 Peter Schmidt Start program # ################################################################################ if [ $# -lt 2 ] then echo "Usage: check_unix_free_percent1_hp.sh [WARNING LIMIT (percent free)] [EMERGENCY LIMIT (percent free) ] -i [List of filesystems to include] -e [List of filesystems to exclude]" echo "Note: include and exclude lists are optional." exit 1 fi WARNING_LIMIT=$1 EMERGENCY_LIMIT=$2 ################################################################################ EXCLUDE_LIST1="" INCLUDE_LIST1="" OPTION_EXCLUDE=false OPTION_INCLUDE=false CNT1=0 CNT2=0 INEX_MODE=0 shift shift while [ ${1}x != x ] do case $1 in -i|-I) INEX_MODE=1 OPTION_INCLUDE=true shift continue;; -e|-E) INEX_MODE=2 OPTION_EXCLUDE=true shift continue;; *) ;; esac case $INEX_MODE in 1) CNT1=`expr $CNT1 + 1` INCLUDE_LIST1[$CNT1]=$1;; 2) CNT2=`expr $CNT2 + 1` EXCLUDE_LIST1[$CNT2]=$1;; esac shift done ################################################################################ TMPFILE1=check_unix_free_percent_1.$$.tmp rm -f $TMPFILE1 ############################################################################### UNIT=K UNITDESC=Kbytes PERCENT_TYPE=Free ############################################################################### bdf -l | grep -v "Filesystem kbytes used avail %used Mounted on" > $TMPFILE1 ############################################################################### while read DEVICE ALLOCATED USED AVAIL PERCENT_USED MOUNTPOINT do #---------------------------------------------------------------------- # EXCLUDES #---------------------------------------------------------------------- if [ $OPTION_EXCLUDE = true ]; then FLAG_EXCLUDE=false x=1 while [ $x -le $CNT2 ] do ##echo "Debug: Check $x of $CNT2 for ${EXCLUDE_LIST1[$x]} and $MOUNTPOINT" if [ ${MOUNTPOINT} = ${EXCLUDE_LIST1[$x]} ]; then FLAG_EXCLUDE=true break fi let x=$x+1 done if [ $FLAG_EXCLUDE = true ]; then continue fi fi #---------------------------------------------------------------------- # INCLUDES #---------------------------------------------------------------------- if [ $OPTION_INCLUDE = true ]; then FLAG_INCLUDE=false x=1 while [ $x -le $CNT1 ] do ##echo "Debug: Check $x of $CNT1 for ${INCLUDE_LIST1[$x]} and $MOUNTPOINT" if [ ${MOUNTPOINT} = ${INCLUDE_LIST1[$x]} ]; then FLAG_INCLUDE=true break fi let x=$x+1 done if [ $FLAG_INCLUDE = false ]; then continue fi fi #---------------------------------------------------------------------- PERCENT_USED=`echo $PERCENT_USED | tr -d "%"` # get rid of percent sign PERCENT_FREE=`expr 100 \- $PERCENT_USED` # get percent free # echo "Mount: $MOUNTPOINT" # echo "PERCENT_USED = $PERCENT_USED" # echo "PERCENT_FREE = $PERCENT_FREE" if [ $PERCENT_FREE -lt $EMERGENCY_LIMIT ] then echo "******* EMERGENCY ******* (Unix filesystem: ${MOUNTPOINT})" echo "Free space on Unix filesystem: ${MOUNTPOINT} has dropped below the emergency limit of ${EMERGENCY_LIMIT}% free!" echo "Available free space is down to ${AVAIL} of ${ALLOCATED} ${UNITDESC} (${PERCENT_USED}% used, ${PERCENT_FREE}% free)" echo else if [ $PERCENT_FREE -lt $WARNING_LIMIT ] then echo "******* WARNING ******* (Unix filesystem: ${MOUNTPOINT})" echo "Free space on Unix filesystem: ${MOUNTPOINT} has dropped below the warning limit of ${WARNING_LIMIT}% free!" echo "Available free space is down to ${AVAIL} of ${ALLOCATED} ${UNITDESC} (${PERCENT_USED}% used, ${PERCENT_FREE}% free)" echo fi fi done < $TMPFILE1 rm -f $TMPFILE1 ################################################################################