跳过相同阈值的电子邮件警报

  • 本文关键字:电子邮件 阈值 bash
  • 更新时间 :
  • 英文 :


如果阈值"MAX=85%"是相同的85%下次脚本运行,所以我不会得到重复的电子邮件。我只想在MAX 85%以上的阈值超过85时收到一封电子邮件。

#!/bin/bash
DISK="/home" # disk to monitor
CURRENT=$(df -h | grep ${DISK} | awk {'print $4'}) # get disk usage from monitored disk
MAX="85%" # max 85% disk usage
MAX=""
DOMAIN="your.com"
# functions #
function max_exceeded() {
# Max Exceeded now find the largest offender
cd $DISK
for i in `ls` ; do du -s $i ; done > /tmp/mail.1
sort -gk 1 /tmp/mail.1 | tail -1 | awk -F " " '{print $2}' > /tmp/mail.offender
OFFENDER=`cat /tmp/mail.offender`
echo $OFFENDER
du -sh $DISK/$OFFENDER > /tmp/mail.over85
mail -s "$HOSTNAME $DISK Alert!" "$OFFENDER@$DOMAIN, admin@$DOMAIN"  < /tmp/mail.over85
}
function main() {
# check if current disk usage is greater than or equal to max usage.
if [ ${CURRENT} ]; then
if [ ${CURRENT%?} -ge ${MAX%?} ]; then
# if it is greater than or equal to max usage we call our max_exceeded function and send mail
echo "Max usage (${MAX}) exceeded. The /home disk usage is it at ${CURRENT}. Sending email."
max_exceeded
fi
fi
}

# init #
main
#CLEANUP
rm /tmp/mail.1
rm /tmp/mail.offender
#rm /tmp/mail.over85

如果警报被触发,您可以在临时文件中设置一个标志值,并根据该值检查下一次执行。

如果警报消失,取消设置值/删除文件。

最新更新