Linux硬件监控

代码为shell脚本,通过top和df命令,获取cpu、内存 、磁盘使用情况,配合sendEmail、php发送异常警告,并配置cron自动任务,达到监控的目的。

#!/bin/bash
#

Item=服务器硬件监控

#cpu占用率
Cpu=`top -b -n1 |fgrep "Cpu(s)" |tail -l | awk '{ print $2 }'`

#内存占用率
UsedMem=`top -b -n1 |fgrep "MiB Mem" |tail -l |awk '{ print $8 }'`
TotalMem=`top -b -n1 |fgrep "MiB Mem" |tail -l |awk  ' ''{ print $4 }'`
BFBMem=$(printf "%.3f" `echo "scale=3;$UsedMem*100/$TotalMem"|bc`)

#磁盘占用率
TotalDisk=`df -m |sed -n '2,$p' |awk '{print $2}' |awk -F ":" '{sum+=$i}END{ print sum}'`
UsedDisk=`df -m |sed -n '2,$p' |awk '{print $3}' |awk -F ":" '{sum+=$i}END{ print sum}'`
DiskRate=$(printf "%.3f" `echo "scale=3;$UsedDisk*100/$TotalDisk"|bc`)

#获取当前月份、时间。
thisMonth=`date +%Y-%m`
now=`date +%F" "%T`

#是否异常标识
FLAG=FLASE

#检测
#cpu占用率大于80,判断为异常
if [ $(echo "$Cpu >= 80" |bc) -eq 1 ];then
        FLAG=TRUE
#内存占用率大于80,判断为异常
elif [ `echo "$BFBMem >= 80" |bc` -eq 1 ];then
        FLAG=TRUE
#磁盘占用率大于80,判断为异常
elif [  `echo "$DiskRate >= 80" |bc` -eq 1 ];then
        FLAG=TRUE
fi

#根据标识判断当前为异常后
if [ $FLAG = TRUE ]; then
    #邮件报警通知
    /usr/bin/sendEmail -f fromEmail@domain.com -t ToEmail@domain.com -s smtp.exmail.qq.com:587 -u $Item '系统资源监控' -o message-content-type=html -o message-charset=utf8 -xu fromEmail@domain.com -xp 'my_password' -m "[Cpu占用] Cpu Used in $Cpu % <br> [内存占用] KiB Mem Used $BFBMem % <br> [硬盘占用] Disk Used $DiskRate %" -o tls=yes
    #调用php短信通知接口
    php -r 'include "/monitor/sendSms.php"; sendSms("硬件占用异常");'
    #写入报警日志
    echo "$now 硬件占用率异常" >> /var/log/monitor/alarm/$thisMonth.log
fi

#写入监控日志
echo "$now CPU:$Cpu% 内存:$BFBMem% 硬盘:$DiskRate%" >> /var/log/monitor/hardware/hardware/$thisMonth.log

sendemail -f [你的邮箱] -t [接收者的邮箱] -u "邮件主题" -m "邮件内容" -s [SMTP服务器地址] -xu [SMTP用户名] -xp [SMTP密码] -o tls=yes

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值