1.安装邮箱服务器,选择sendmail或者postfix都可以实现(笔者在本地使用的ubuntu,安装的sendmail服务器,线上的是centos并且自带了postfix),安装教程sendmail参考:安装sendmail, 安装postfix参考:安装postfix
2.将需要被被监控的磁盘名称和邮件的接收者和抄送对象都放在单独的配置文件中,比较灵活。(磁盘名称:diskName.conf,邮件的接受者:users_to.conf,抄送对象:users_cc.conf)
3.定义阈值(例如:80%)
4.逐行遍历diskName.conf文件,检查它们是否达到阈值
核心代码:
while read disk_name
do
for ((i=1;i<=$len;i=i+2));do
if [ ${disks[i]} -gt $threshold ] && [ "${disks[i - 1]}" = "$disk_name" ];then
isSend="true"
echo "$diskWarning"
diskWarning=$diskWarning"${disk_name} used ${disks[$i]}%,"
fi
done
done < $to_monitor_disk_name
5.如果有达到阈值的磁盘,则将ip,磁盘名称和使用情况通过邮件的方式发送给监控者
核心代码:
/usr/sbin/sendmail -t <<EOF
From: Disk Monitor $user_from
To: $str_to_users
Cc: $str_cc_users
Subject: Disk Warning
----------------------------------
$diskWarning
----------------------------------
EOF
完整代码:完整代码