#!/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'
##
## 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 }'`"
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
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