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 % |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)