Friday 21 December 2012

Check Disk Space Script

#!/bin/ksh
##
## checkspace.sh Run as a backend process to checkout the
## available diskspace and send out warning email if it exceeds the watermark
##
##

export EMAILS='amitmund@example.com'
export HOSTNAME=`hostname`
export DF='df -k'
export FILESYS=$1

 if [[ $# -lt 1 || $1 = "-h" ]]; then
        echo ""
        echo 'Usage: checkspace.sh $FILE_SYSTEM $SPACE_WATERMARK [%] | -h'
        echo ""
        echo "File System:     The mount point to be monitored. (eg. /ebs) "
        echo "Space Watermark: Space watermark to be monitored. "
        echo "                 80 means 80 MB"
        echo "                 80 % means 80% of usage"
        echo "Options:"
        echo "       -h:  Help Message"
        echo ""
        exit 1
fi

if [ "$3" = "%" ]; then
        let "TOTAL_SPACE=`$DF $FILESYS | tail -1 | awk '{ print $2 }'`"
        (( LOW_WATER_MARK = TOTAL_SPACE * (100 - $2) / 100 ))
   else
        (( LOW_WATER_MARK = $2 * 1024 ))
fi

let "FREE_SPACE=`$DF $FILESYS | tail -1 | awk '{ print $4 }'`"
echo FREESPACE: $FREE_SPACE KB
echo WATER_MARK: $LOW_WATER_MARK KB

if (( $FREE_SPACE < $LOW_WATER_MARK )) ; then

        (( MB_FREE = $FREE_SPACE / 1024 ))
        MSG="Hostname: $HOSTNAME \nFilesys: $FILESYS \nFree Space: $MB_FREE MB"

        echo $MSG | mailx -s "Host: $HOSTNAME - DISK QUOTA WARNING!" $EMAILS

fi

No comments:

Post a Comment