脚本监控并报警系统磁盘占用
一、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目录下并添加权限
4、测试脚本报警邮件是否运行正常
#sh disk_check.sh
附录:报错、未预期的符号 `$’\r’’ 附近有语法错误
解决办法:格式问题,安装一个dos2unix
5、添加定时任务
输入命令:crontab -e, 然后输入:10 9 * * * /home/rlog/disk_check.sh ,每天早上9点10分执行脚本, 最后保存即可