下面是编程之家 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、内存等相关推荐

  1. html嵌入式的脚本语言,Markdown语法及html内嵌

    之前看到很多大佬博客写的特别漂亮,非常羡慕,他们是怎么排版的呢?作为一个小白,学习使我快乐....终于在不断摸索中,找到方法.原来大佬们使用了一个新的语言--Markdown. 1.Markdown介 ...

  2. 查看Linux系统基本信息CPU内存系统负载

    查看Linux系统基本信息 1.查看Linux系统uuid [root@localhost ~]# cat /sys/class/dmi/id/product_uuid A6E64D56-8D4F-1 ...

  3. Linux 入门必看:如何60秒内分析Linux性能

    作者:helightxu,腾讯 IEG 开发工程师 本文来自公众号:黑光技术 当你登陆一台 Linux 服务器之后,因为一个问题要做性能分析时:你会在第 1 分钟内做哪些检测呢? 在 Netflix, ...

  4. supervisor 监控mysql_利用superlance监控supervisor运行状态

    此文已由作者张家裕授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 最近开发问到supervisor管理下的进程重启了,有无办法做到主动通知,楼主最先想到的是superviso ...

  5. linux c 将虚拟地址转化为物理地址_面试不懂 Linux 内存管理?我用 20 张图给你讲明白...

    微信搜索公众号「 后端技术学堂 」回复「1024」获取50本计算机电子书,回复「学习路线」获取超详细后端技术学习路线思维导图,文章每周持续更新,我们下期见! 大家好,我是柠檬哥. 分享编程学习,助力程 ...

  6. linux系统支持最大内存,「Linux」- 查找系统支持的最大内存 @20210225

    问题描述 机器支持的最大内存除了受操作系统的限制,还受到硬件芯片的寻址限制.如果使用64位操作系统,我们通常不需要担心操作系统限制.作为桌面用户,我们更需要关注硬件的最大内存限制. 本文通过使用命令找 ...

  7. 计算机无法读入内存怎么办,Win10提示内存不能为read怎么办 三种方法快速解决内存read问题...

    win10系统中会有"内存不能为read"的应用程序错误问题,其实出现这现象主要是因为系统不兼容,或内存有问题导致的,那我们该如何解决Win10系统中提示"内存不能为re ...

  8. (转)开发监控Linux 内存 Shell 脚本

    原文:http://blog.csdn.net/timchen525/article/details/76474017 题场景: 开发Shell 脚本判断系统剩余内存的大小,如果低于100MB,就邮件 ...

  9. 服务器状态监控php源码,服务器状态监控_监控Linux服务器网站状态的SHELL脚本

    摘要 腾兴网为您分享:监控Linux服务器网站状态的SHELL脚本,蜗牛集市,同花顺,探客宝,手柄助手等软件知识,以及日期倒计时插件,云南省教育资源公共,rui手机桌面,小屁孩桌面便签,合金装备崛起复 ...

最新文章

  1. Chrome 浏览器跨域和安全访问问题 使用 chrome的命令行标记:disable-web-security 参数联调线上数据...
  2. [公告]向大家汇报服务器的情况
  3. html5 子元素选择器,CSS子元素选择器 - HTML电子邮件
  4. poj2065 SETI
  5. jenkins自动化打包部署
  6. 从《网管员必读》系列丛书获奖看读者的真正需求——成功原因分析(一)
  7. linux下使用source执行文件的含义
  8. v8go 库手动编译 v8 golang 库手动编译
  9. 【Hibernate教程】框架体系介绍
  10. 软件测试面试题整理(一)之自动化测试题大合集
  11. LintCode 快速幂
  12. 新能源汽车电池健康状态及能耗分析
  13. 新型电话诈骗手法“明天到我办公室来一下”全揭秘
  14. 瑞幸的不幸,已可预见
  15. React实现微信公众号支付
  16. Android使用MediaStore.ACTION_IMAGE_CAPTURE拍照
  17. 国产工业软件仍未迎来黎明
  18. MOFs/氧化硅;MOFs/石墨烯;MOFs/生物相容性水凝胶合成方法
  19. Python案例-网络编程-socket入门-serverclient
  20. 【学习记录】QQZone项目 part1

热门文章

  1. 插槽作用域渲染按钮开关 ~ 满满的干货哦
  2. 【java笔记】File类(1)概述,静态成员,构造方法
  3. matlab中 mcc/mbuild/mex 区别
  4. 虹软java接摄像头_java基于虹软sdk实现人脸识别(demo)
  5. iframe关闭当前窗口_iframe 、 a标签、input标签
  6. python定义一个空列表lt_4. Python 基础之阶段测试(一)
  7. Visual Studio 2019 C# 断点调试 凯撒密码,单码密码实现
  8. 2021 年百度之星·程序设计大赛 - 复赛 1001 Palindrome(结论,奇偶性)
  9. SQL Server高级查询之常见数据库对象(视图)第五章节
  10. SQL Sever 聚合函数