linux shell脚本监控内存,shell脚本监控内嵌linux系统业务、CPU、内存等
下面是编程之家 jb51.cc 通过网络收集整理的代码片段。
编程之家小编现在分享给大家,也给大家做个参考。
定制板卡中bash无法使用,使用标准sh完成对系统及业务监控
#! /bin/sh
#Process_Name="/guard /aps /sa /zyguard"
Process_Name="/mp /mcu"
#获取主机IP地址
ip=`ifconfig eth0 |grep "inet addr"| cut -f 2 -d ":"|cut -f 1 -d " "`
gstr="/guard"
space=" "
First_Process=""
#获取初始业务进程号
for i in $Process_Name
do
if [[ $i == $gstr ]]
then
Bf_Process=`ps |grep $i|grep -v grep|grep -v '/bin/bash'|awk '{print $1}'`
First_Process=$First_Process$i":"$Bf_Process$space
else
Bf_Process=`ps |grep $i|grep -v grep|awk '{print $1}'`
First_Process=$First_Process$i":"$Bf_Process$space
fi
done
while true
do
For_num=1
sleep 3
Second_Process=""
#第二次获取业务进程号
for i in $Process_Name
do
if [[ $i == $gstr ]]
then
Bs_Process=`ps |grep $i|grep -v grep|grep -v '/bin/bash'|awk '{print $1}'`
Second_Process=$Second_Process$i":"$Bs_Process$space
else
Bs_Process=`ps |grep $i|grep -v grep|awk '{print $1}'`
Second_Process=$Second_Process$i":"$Bs_Process$space
fi
done
echo "First_Process:"$First_Process
echo "Second_Process:"$Second_Process
#查看所有业务进程有无变化,有变化输出到日志文件
for j in $Process_Name
do
echo $j
One_f_Process=`echo $First_Process|awk -v t="${For_num}" '{print $t}'`
One_s_Process=`echo $Second_Process|awk -v t="${For_num}" '{print $t}'`
For_num=$((For_num+1))
echo "One_f_Process:"$One_f_Process
echo "One_s_Process:"$One_s_Process
if [[ "$One_f_Process" != "$One_s_Process" ]]
then
Time_Now=`date`
echo $Time_Now
echo $j
echo $One_s_Process
echo $One_f_Process
echo -e $Time_Now"\t"$j"\tCollapse\tThe new process:"$One_s_Process"\t\tThe old process:"$One_f_Process >> /usr/tmp/$ip'_collapse'.txt
fi
done
#获取业务进程号
First_Process=""
for i in $Process_Name
do
if [[ $i == $gstr ]]
then
Bf_Process=`ps |grep $i|grep -v grep|grep -v '/bin/bash'|awk '{print $1}'`
First_Process=$First_Process$i":"$Bf_Process$space
else
Bf_Process=`ps |grep $i|grep -v grep|awk '{print $1}'`
First_Process=$First_Process$i":"$Bf_Process$space
fi
done
#系统内存使用率监控
Memory_Use_Rate=`free | grep Mem | awk '{printf"%d",$3/$2*100}'`
if [ 80 -le $Memory_Use_Rate ]
then
Time_Now=`date`
echo -e $Time_Now"\tSystm Memory\tMemory_Use_Rate\tAt present the use value:"$Memory_Use_Rate"%\tThreshold:80%" >> /usr/tmp/$ip'_alarm'.txt
fi
#系统cpu剩余率监控
cpu_Residual_Rate=`mpstat|grep all|awk '{printf"%d",$11}'`
echo $cpu_Residual_Rate
if [ $cpu_Residual_Rate -le 20 ]
then
Time_Now=`date`
echo $Time_Now
echo -e $Time_Now"\tSystm cpu\tcpu_Residual_Rate(%idle)\tAt present the use value:"$cpu_Residual_Rate"%\tThreshold:20%" >> /usr/tmp/$ip'_alarm'.txt
fi
#业务内存使用率监控
System_Memory=`free | grep Mem | awk '{printf"%d",$2/1024}'`
for k in $Process_Name
do
if [[ $k == $gstr ]]
then
Process_Memory_Use=`ps |grep $k|grep -v grep|grep -v '/bin/bash'|awk '{print $3}'`
var_length=${#Process_Memory_Use}
var_Position=`expr $var_length - 1`
m=${Process_Memory_Use:$var_Position:1}
if [[ $m == "m" ]]
then
Pro_Mem_Use=${Process_Memory_Use:0:$var_Position}
else
Pro_Mem_Use=`expr $Process_Memory_Use / 1024`
fi
System_Memory_Threshold=`free | grep Mem | awk '{printf"%d",$2/1024*0.8}'`
if [[ $Pro_Mem_Use -ge $System_Memory_Threshold ]]
then
Time_Now=`date`
echo -e $Time_Now"\t"$k"\tProcess_Memory_Use\tAt present the use value:"$Pro_Mem_Use"Mb\tThreshold:"$System_Memory_Threshold"Mb" >> /usr/tmp/$ip'_alarm'.txt
fi
else
Process_Memory_Use=`ps |grep $k|grep -v grep|awk '{print $3}'`
var_length=${#Process_Memory_Use}
var_Position=`expr $var_length - 1`
m=${Process_Memory_Use:$var_Position:1}
if [[ $m == "m" ]]
then
Pro_Mem_Use=${Process_Memory_Use:0:$var_Position}
else
Pro_Mem_Use=`expr $Process_Memory_Use / 1024`
fi
System_Memory_Threshold=`free | grep Mem | awk '{printf"%d",$2/1024*0.8}'`
if [[ $Pro_Mem_Use -ge $System_Memory_Threshold ]]
then
Time_Now=`date`
echo -e $Time_Now"\t"$k"\tProcess_Memory_Use\tAt present the use value:"$Pro_Mem_Use"Mb\tThreshold:"$System_Memory_Threshold"Mb" >> /usr/tmp/$ip'_alarm'.txt
fi
fi
done
done
以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
小编个人微信号 jb51ccc
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!
linux shell脚本监控内存,shell脚本监控内嵌linux系统业务、CPU、内存等相关推荐
- html嵌入式的脚本语言,Markdown语法及html内嵌
之前看到很多大佬博客写的特别漂亮,非常羡慕,他们是怎么排版的呢?作为一个小白,学习使我快乐....终于在不断摸索中,找到方法.原来大佬们使用了一个新的语言--Markdown. 1.Markdown介 ...
- 查看Linux系统基本信息CPU内存系统负载
查看Linux系统基本信息 1.查看Linux系统uuid [root@localhost ~]# cat /sys/class/dmi/id/product_uuid A6E64D56-8D4F-1 ...
- Linux 入门必看:如何60秒内分析Linux性能
作者:helightxu,腾讯 IEG 开发工程师 本文来自公众号:黑光技术 当你登陆一台 Linux 服务器之后,因为一个问题要做性能分析时:你会在第 1 分钟内做哪些检测呢? 在 Netflix, ...
- supervisor 监控mysql_利用superlance监控supervisor运行状态
此文已由作者张家裕授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 最近开发问到supervisor管理下的进程重启了,有无办法做到主动通知,楼主最先想到的是superviso ...
- linux c 将虚拟地址转化为物理地址_面试不懂 Linux 内存管理?我用 20 张图给你讲明白...
微信搜索公众号「 后端技术学堂 」回复「1024」获取50本计算机电子书,回复「学习路线」获取超详细后端技术学习路线思维导图,文章每周持续更新,我们下期见! 大家好,我是柠檬哥. 分享编程学习,助力程 ...
- linux系统支持最大内存,「Linux」- 查找系统支持的最大内存 @20210225
问题描述 机器支持的最大内存除了受操作系统的限制,还受到硬件芯片的寻址限制.如果使用64位操作系统,我们通常不需要担心操作系统限制.作为桌面用户,我们更需要关注硬件的最大内存限制. 本文通过使用命令找 ...
- 计算机无法读入内存怎么办,Win10提示内存不能为read怎么办 三种方法快速解决内存read问题...
win10系统中会有"内存不能为read"的应用程序错误问题,其实出现这现象主要是因为系统不兼容,或内存有问题导致的,那我们该如何解决Win10系统中提示"内存不能为re ...
- (转)开发监控Linux 内存 Shell 脚本
原文:http://blog.csdn.net/timchen525/article/details/76474017 题场景: 开发Shell 脚本判断系统剩余内存的大小,如果低于100MB,就邮件 ...
- 服务器状态监控php源码,服务器状态监控_监控Linux服务器网站状态的SHELL脚本
摘要 腾兴网为您分享:监控Linux服务器网站状态的SHELL脚本,蜗牛集市,同花顺,探客宝,手柄助手等软件知识,以及日期倒计时插件,云南省教育资源公共,rui手机桌面,小屁孩桌面便签,合金装备崛起复 ...
最新文章
- Chrome 浏览器跨域和安全访问问题 使用 chrome的命令行标记:disable-web-security 参数联调线上数据...
- [公告]向大家汇报服务器的情况
- html5 子元素选择器,CSS子元素选择器 - HTML电子邮件
- poj2065 SETI
- jenkins自动化打包部署
- 从《网管员必读》系列丛书获奖看读者的真正需求——成功原因分析(一)
- linux下使用source执行文件的含义
- v8go 库手动编译 v8 golang 库手动编译
- 【Hibernate教程】框架体系介绍
- 软件测试面试题整理(一)之自动化测试题大合集
- LintCode 快速幂
- 新能源汽车电池健康状态及能耗分析
- 新型电话诈骗手法“明天到我办公室来一下”全揭秘
- 瑞幸的不幸,已可预见
- React实现微信公众号支付
- Android使用MediaStore.ACTION_IMAGE_CAPTURE拍照
- 国产工业软件仍未迎来黎明
- MOFs/氧化硅;MOFs/石墨烯;MOFs/生物相容性水凝胶合成方法
- Python案例-网络编程-socket入门-serverclient
- 【学习记录】QQZone项目 part1
热门文章
- 插槽作用域渲染按钮开关 ~ 满满的干货哦
- 【java笔记】File类(1)概述,静态成员,构造方法
- matlab中 mcc/mbuild/mex 区别
- 虹软java接摄像头_java基于虹软sdk实现人脸识别(demo)
- iframe关闭当前窗口_iframe 、 a标签、input标签
- python定义一个空列表lt_4. Python 基础之阶段测试(一)
- Visual Studio 2019 C# 断点调试 凯撒密码,单码密码实现
- 2021 年百度之星·程序设计大赛 - 复赛 1001 Palindrome(结论,奇偶性)
- SQL Server高级查询之常见数据库对象(视图)第五章节
- SQL Sever 聚合函数