#!/bin/bash --posix
################################################################################
# check fs status against a specific limit
################################################################################
# Setting environment
#--------------------
LOGFILE="/usr/local/log/chkfs.log"
exec 2>&1 > $LOGFILE
MAILER="/usr/bin/mailx"
SUBJECT="$0@`hostname`): problemi di spazio sul Filesystem"
ROOT_LIMIT=85
GEN_LIMIT=90 #limite per filesystem generico
ALERT=no
FILESYSTEM=`df -k |awk '{print $6}'|grep -v /dev/fd|grep -v Mounted`
# Tagging script begin
# --------------------
echo "<SCRIPT BEGIN `date`>"
echo "-----------------------------------------------"
echo ""
for FS in $FILESYSTEM
do
OCCUPAZIONE=$(df -k $FS | tail -1 | awk '{print $5}' | tr -d %)
case $FS in
"/" ) SOGLIA=${ROOT_LIMIT} ;;
* ) SOGLIA=${GEN_LIMIT} ;;
esac
if [[ ${OCCUPAZIONE} -eq ${SOGLIA} ]]
then
echo "Attenzione! \"$FS\" ha raggiunto il valore SOGLIA di ${SOGLIA}%"
echo ""
ALERT=yes
elif [[ ${OCCUPAZIONE} -gt ${SOGLIA} ]]
then
echo "ATTENZIONE! $FS (${OCCUPAZIONE}%) ha superato la soglia di ${SOGLIA}%"
echo ""
ALERT=yes
fi
done
# Tagging script termination
# --------------------------
echo "<SCRIPT END `date` >"
echo "---------------------------------------------"
echo ""
# Mailing sys-admins
# -----------------
if [[ ${ALERT} = "yes" ]]
then
for n in $(cat /usr/local/script/sysadmin.list)
do
$MAILER -s "$SUBJECT" $n < $LOGFILE
done
fi