shell

应用示例


示例要求:
(1)使用df命令提取出根分区的磁盘占用率,赋值给变量DUG。
(2)使用mpstat命令提取CPU使用率(需安装sysstat软件包),赋值给变量CUG。
(3)使用free命令提取出内存使用率,赋值给变量MUG。
(4)判断上述监控项目是否超标,将需要告警的信息保存到/tmp/alert.txt文件。
(5)判断/tmp/alert.txt文件是否存在,若存在则作为告警邮件发送。

 

[root@localhost ~]# vim 1.sh
#!/bin/bash

提取性能监控指标(磁盘占用、CPU使用、内存使用)

DUG=(df −hT∣grep "/" | awk '{print $6}' | awk -F% '{print 1}')
CUG=(expr 100 - $(mpstat | tail -1 | awk '{print $12}' | awk -F. '{print 1}'))
MUG=(expr $(free | grep "Mem:" | awk ‘{print $3}’) * 100 / $(free | grep "Mem:" | awk '{print $2}'))

 
设置告警日志文件、告警邮箱

ALOG=“/tmp/alert.txt”
AMAIL=“root”

判断是否记录告警

if [ DUG −ge 0] then echo "磁盘占用率:DUG -ge 0 ] then echo "磁盘占用率:DUG−ge0]thenecho"磁盘占用率:DUG %" >> $ALOG
fi
if [ CUG −ge 0] then echo "CPU使用率:CUG -ge 0 ] then echo "CPU使用率:CUG−ge0]thenecho"CPU使用率:CUG %" >> $ALOG
fi
if [ MUG −ge 0] then echo "内存使用率:MUG -ge 0 ] then echo "内存使用率:MUG−ge0]thenecho"内存使用率:MUG %" >> $ALOG
fi

 

判断是否发送告警邮件,最后删除告警日志文件
if [ -f $ALOG ]
  then
  cat $ALOG | mail -s “Host Alert” $AMAIL
  rm -rf $ALOG
fi
[root@localhost ~]# sh 1.sh
[root@localhost ~]# mail //查看邮件
Heirloom Mail version 12.5 7/5/10. Type ? for help.
“/var/spool/mail/root”: 1 message 1 new

    N 1 root Tue Jul 30 13:01 20/662 “Host Alert”
    &
    …………………… //省略部分内容
    磁盘占用率:26 %
    CPU使用率:1 %
    内存使用率:18 % //验证结果
    #(注释)实验环境,大于等于0就发送邮件,实际生产环境视情况而定!

 

也可以这样查看邮件:
[root@localhost ~]# cat /var/spool/mail/root
                                ……………                  //省略部分内容
磁盘占用率:26 %
CPU使用率:1 %
内存使用率:18 %
您在 /var/spool/mail/root 中有邮件
posted @ 2022-06-08 16:21  linuxws  阅读(40)  评论(0编辑  收藏  举报