周末发现一台应用服务器应用服务器磁盘满了,之前由于太忙还来不及做,现在要做一个监控告警并发出邮件。
1、直接到/opt下vi disk_check.sh编辑文件
#!/bin/bash
partition_list=(`df -h | awk 'NF>3&&NR>1{sub(/%/,"",$(NF-1));print $NF,$(NF-1)}'`)
critical=$1
echo $1
echo $2
product=$2
dtimes=`date +%Y%m%d%H%M`
notification_email()
{
emailuser='uroot@163.com'
emailpasswd='passwd'
emailsmtp='smtp.163.com'
sendto='sweetsn@163.com'
title=$product$dtimes' Disk Space Alarm'
/opt/sendEmail-v1.56/sendEmail -f $emailuser -t $sendto -s $emailsmtp -u $title -xu $emailuser -xp $emailpasswd
}
crit_info=""
for (( i=0;i<${#partition_list[@]};i+=2 ))
do
if [ "${partition_list[((i+1))]}" -lt "$critical" ];then
echo "OK! ${partition_list[i]} used ${partition_list[((i+1))]}%"
else
if [ "${partition_list[((i+1))]}" -gt "$critical" ];then
crit_info=$crit_info"Warning! ${partition_list[i]} used ${partition_list[((i+1))]}%\n"
fi
fi
done
if [ "$crit_info" != "" ];then
ips=`/sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
echo -e $ips" "$crit_info | notification_email
fi
Esc :wq保存退出
2、