serverscripts/diskalert

74 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
# Script Name: diskalert
# Author: Matt McKinnon
# Date: 7th June 2016
# Description:
# This script will email when diskspace is high.
MAILTO="support@comprofix.com"
MAILFROM="support@comprofix.com"
THISSERVER=$(hostname -f)
SMTP="comprofix-com.mail.protection.outlook.com"
LOGFILE="/var/log/diskalert.log"
THISSERVER=$(hostname -f)
startlogging() {
echo $DASHES2 >> $LOGFILE
echo "$0 started running at $(date)" >> $LOGFILE
echo $DASHES2 >> $LOGFILE
}
stoplogging() {
echo "$(date) [MESSAGE] $0 finished runnning" >> $LOGFILE
echo $DASHES >> $LOGFILE
}
DASHES="---------------------------------------------------------------------------------"
DASHES2="================================================================================="
declare -a DEVICES
index=0
startlogging
for i in $( df -h | grep "/dev/" | grep -v tmpfs | awk '{print $1}' );
do
DEVICES[$index]=$i
let "index += 1"
done
for i in ${DEVICES[@]};
do
let space=`df -Pk $i | grep -v ^File | awk '{printf ("%i", $5) }'`
if [ $space -le 89 ]
then
echo "$(date) [MESSAGE] Disk space usage on $i acceptable. $space% currently in use." >> $LOGFILE
fi
if [ $space -ge 90 ]
then
echo "$(date) [WARNING] $i is running out of disk space. $space% currently in use." >> $LOGFILE
echo "
Hello,
You are running out of disk space on $THISSERVER.
Your $i is currently using $space% of disk space.
See the logfile for more info: vim $LOGFILE
Regards, " >/tmp/diskalertmail.msg
sendemail -o tls=no -s $SMTP -t $MAILTO -f "$THISSERVER <$MAILFROM>" -u "[$THISSERVER] is running out of disk space" -m "$(cat /tmp/diskalertmail.msg)" -q
echo "$(date) [MESSAGE] Running out of disk space email sent to $MAILTO" >> $LOGFILE
fi
done
stoplogging