Centos7下监控磁盘使用量超过阈值自动发送报警邮件

Centos7下监控磁盘使用量超过阈值自动发送报警邮件

前言

前段时间公司有台Centos7的服务器因为磁盘满了,导致服务不可以,今天有空特来总结一下,如何监控centos系统磁盘,设置阈值,定时检测,自动发送邮件报警。

一、下载安装sendEmail工具

cd /opt  #安装到opt目录下
wget http://c aspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz  #下载文件
tar -zxvf sendEmail-v1.56.tar.gz  #解压到opt目录下
chmod 777 /opt/sendEmail-v1.56/sendEmail  #赋予执行权限

-f 表示from,发件人地址
-t 表示to,收件人地址
-s mail服务器域名
-u 主题
-xu 用户名(@之前的)
-xp 用户密码
-m 纯文本信息
-o message-file=/root/… 发送文件中的内容
-a 发送附件 (-m,-o,-a可以同时使用)

二、编写disk_check.sh文件

#!/bin/bash
partition_list=(`df -h | awk 'NF>3&&NR>1{sub(/%/,"",$(NF-1));print $NF,$(NF-1)}'`)
critical=90
notification_email()
{
    emailuser='xxxx@xxx.com.cn'
    emailpasswd='passwd'
    emailsmtp='smtp.exmail.qq.com'
    sendto='88888888@qq.com'
    title='(101.8)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
    echo -e $crit_info | notification_email
fi

文件拷贝到/opt目录下
赋予执行权限

chmod 755 /opt/disk_check.sh

若提示格式错误,可使用dos2unix工具进行格式化

yum install -y dos2unix
dos2unix disk_check.sh

三、运行disk_check.sh

sh /opt/disk_check.sh

四、加入定时任务

crontab -e
*/20 * * * * /opt/disk_check.sh  #每20分钟执行一次
上一篇:ajax的使用 json格式传参


下一篇:Shell+Curl监控网站页面访问状态,利用SendEmail发邮件通知