return to PRS Technologies website


check_unix_free_space1_sco.sh
#!/usr/bin/ksh ################################################################################ # # Module: check_unix_free_space1_sco.sh # # Description: Check Unix free disk space info for SCO Unix # Allow exclusions # # 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_sco.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 ############################################################################### df -B -k | grep -v "Filesystem 1024-blocks Used Available Capacity 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 ################################################################################