return to PRS Technologies website
check_unix_free_space1_hp.sh
|
#!/usr/bin/ksh
################################################################################
#
# Module: check_unix_free_space1_hp.sh
#
# Description: Check Unix free disk space info for HP/UX
#
# Author: Peter R. Schmidt
#
# Argument 1 = Warning Limit
# Argument 2 = Emergency Limit
# Argument X = -i [list of filesystems to include]
# -e [list of filesystems to exclude]
#
# Change Log
#
# Date Person Description
#
# 03/07/2001 Peter Schmidt Start program
#
################################################################################
if [ $# -lt 2 ]
then
echo "Usage: check_unix_free_space1_hp.sh [WARNING LIMIT in Kbytes] [EMERGENCY LIMIT in Kbytes] -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_space_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 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
#----------------------------------------------------------------------
if [ $AVAIL -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} ${UNITDESC}!"
echo "Available free space is down to ${AVAIL} of ${ALLOCATED} ${UNITDESC} (${PERCENT} used)"
echo
else
if [ $AVAIL -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} ${UNITDESC}!"
echo "Available free space is down to ${AVAIL} of ${ALLOCATED} ${UNITDESC} (${PERCENT} used)"
echo
fi
fi
done < $TMPFILE1
rm -f $TMPFILE1
################################################################################