linux系统脚本监控系统磁盘占用并报警

时间:2024-04-14 12:03:16

脚本监控并报警系统磁盘占用

一、Linux磁盘空间监控告警
最近Linux服务器磁盘使用量经常到100%,直到影响到正常服务出现故障才会去注意,做不到防患于未然。于是使用shell脚本实时监控磁盘使用量并在超过阀值后自动发送报警邮件。
脚本简单说明:
用df命令查看磁盘使用量信息,超过脚本设置的阀值(critical=90)90%,
就会自动用sendEmail命令发送报警邮件。
二、1、首先监测脚本直接复制下面脚本代码存为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='[email protected]'
    emailpasswd='password'
    emailsmtp='smtp.domain.com'
    sendto='[email protected]'
    title='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`

2、上传disk_check.sh文件到linux服务器的/opt目录下并添加权限
3、下载安装sendEmail到linux服务器的/opt目录下并添加权限

linux系统脚本监控系统磁盘占用并报警
4、测试脚本报警邮件是否运行正常
#sh disk_check.sh
附录:报错、未预期的符号 `$’\r’’ 附近有语法错误
解决办法:格式问题,安装一个dos2unix

linux系统脚本监控系统磁盘占用并报警
5、添加定时任务
输入命令:crontab -e, 然后输入:10 9 * * * /home/rlog/disk_check.sh ,每天早上9点10分执行脚本, 最后保存即可