shell

应用示例


示例要求:
1
2
3
4
5
(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使用、内存使用)

1
2
3
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”

判断是否记录告警

1
2
3
4
5
6
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

 

判断是否发送告警邮件,最后删除告警日志文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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就发送邮件,实际生产环境视情况而定!

 

也可以这样查看邮件:
1
2
3
4
5
[root@localhost ~]# cat /var/spool/mail/root
                                ……………                  //省略部分内容
磁盘占用率:26 %
CPU使用率:1 %
内存使用率:18 %
您在 /var/spool/mail/root 中有邮件
posted @   linuxws  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
点击右上角即可分享
微信分享提示