`
xidajiancun
  • 浏览: 476054 次
文章分类
社区版块
存档分类
最新评论

监测系统的情况,你必须知道的两三事!

 
阅读更多

你要是系统运维人员,就要实时的监控系统的一些重要参数,不如僵尸进程,CPU的利用率,内存的使用情况,磁盘空间的使用情况,系统的均衡负载,根据得到的最新信息,我们就能判断系统运行的状态是否良好。本人接触linux系统也有一点时间,在网上看看了,经过整理,将一些常用的系统监控的命令shell脚本拿出来晒晒,希望给新手提供学习的机会,同时也希望经验丰富者提够些技术知道,多多探讨交流!

获得某个用户的某个进行的信息:

function GetPID #user #name
{
	PsUser=$1
	#echo $PsUser
	PsName=$2
	#echo $PsName
	pid=`ps -u $PsUser | grep $PsName | grep -v grep | grep -v vi | grep -v dbx\n | grep -v tail | grep -v start | grep -v stop | sed -n 1p | awk '{print $1}'`
	echo $pid
}

PID=`GetPID lgy cat`
echo $PID

#The process does not exist.

if [ "-$PID" == "-" ]
then
{
    echo "The process does not exist."
}
fi
这里面涉及一些最基本的进程监控命令,在linux中你只要man ps就会得到很多使用说明,grep按照一定的匹配规则进行字符串分割匹配,还有一些简单的控制语句,这些基本的shell语法应该是我们的基本技能,在晚上会有很多的学习资料。

获得CPU的使用率:

function GetCPU
{
    CPUValue=`ps -p $1 -o pcpu | grep -v CPU | awk '{print $1}' | awk -F. '{print $1}'`
    echo $CPUValue
}

function CheckCPU
{
    PID=$1
    cpu=`GetCPU $PID`
    if [ $cpu -gt 80 ]
    then
    {
        echo "The usage of cpu is larger than 80%"
    }
    else
    {
        echo "The usage of cpu is normal"
    }
    fi
}

CheckCPU $PID

这个程序和上一个代码片段是一脉相承,本段代码的运行结果一会会有相应的展示!

这段脚本的主要目的是用来进行某个进程的内存使用情况的检测:

function GetMem
{
    MemUsage=`ps -o vsz -p $1 | grep -v VSZ`
    ((MemUsage /= 1024))
    echo $MemUsage    
}

mem=`GetMem $PID`
if [ $mem -gt 1600 ]
then
{
    echo "The usage of memory is larger than 1.6G"
}
else
{
    echo "The usage of memory is normal"
}
fi

这是用来进行获得此进程的句柄使用量:

function GetDes
{
    DES=`ls /proc/$1/fd | wc -l`
    echo $DES
}

des=`GetDes $PID`
if [ $des -gt 900 ]
then
{
    echo "The number of des is larger than 900"
}
else
{
    echo "The number of des is normal"
}
fi

进行对某个端口的绑定的查询:

function Listening
{
    TCPListeningNum=`netstat -an | grep ":$1 " | awk '$1 == "tcp" && $NF == "LISTEN" {print $0}' | wc -l`
    UDPListenNum=`netstat -an | grep ":$1 " | awk '$1 == "udp" && $NF == "0.0.0.0:*" {print $0}' | wc -l`
    ((ListeningNum = TCPListeningNum + UDPListenNum ))
    if [ $ListeningNum == 0 ]
    then
    {
        echo "0"
    }
    else
    {
        echo "1"
    }
    fi
}

isListen=`Listening 8080`
if [ $isListen -eq 1 ]
then
{
    echo "The port is listening"
}
else
{
    echo "The port is not listening"
}
fi

系统CPU的使用情况:

function GetSysCPU
{
    CPUIdle=`vmstat 1 5 | sed -n '3,$p' | awk '{x = x + $15} END {print x/5}' | awk -F. '{print $1}'`
    CPUNum=`echo "100-$CPUIdle" | bc`
    echo $CPUNum
}

cpu=`GetSysCPU`
echo "The System CPU is $cpu"
if [ $cpu -gt 90 ]
then
{
    echo "The usage of system cpu is larger than 90%"
}
else
{
    echo "The usage of system cpu is normal"
}
fi

获得某制定的磁盘空间

function GetDiskSpc
{
    if [ $# -ne 1 ]
    then
        return 1
    fi
    
    Folder="$1$"
    DiskSpace=`df -k | grep $Folder | awk '{print $5}' | awk -F% '{print $1}'`
    echo $DiskSpace
}

Folder="/dev"
DiskSpace=`GetDiskSpc $Folder`
echo "The system $Folder disk space is $DiskSpace%"
if [ $DiskSpace -gt 90 ]
then
{
    echo "The usage of system disk($Folder) is larger than 90%"
}
else
{
    echo "The usage of system disk($Folder) is normal"
}
fi

在本机上代码检测的结果如下:

lgy@lgy-HP:~$ ./monitorCPU.sh 
2388
The usage of cpu is normal
The usage of memory is normal
The number of des is normal
The port is not listening
The System CPU is 1
The usage of system cpu is normal
The system /dev disk space is 1%
The usage of system disk(/dev) is normal


分享到:
评论

相关推荐

    基于Java的车间远程监测系统

    基于Java的车间远程监测系统 基于Java的车间远程监测系统 基于Java的车间远程监测系统 基于Java的车间远程监测系统 基于Java的车间远程监测系统 基于Java的车间远程监测系统 基于Java的车间远程监测系统 基于Java的...

    C语言本科毕业设计猪舍环境监测系统(PHEMS)源码(C语言期末大作业+毕设高分必看).zip

    C语言本科毕业设计猪舍环境监测系统(PHEMS)源码。C语言本科毕业设计猪舍环境监测系统(PHEMS)源码。C语言本科毕业设计猪舍环境监测系统(PHEMS)源码。C语言本科毕业设计猪舍环境监测系统(PHEMS)源码。C语言...

    源码+原型+数据库 雨量监测信息管理系统

    源码+原型+数据库 雨量监测信息管理系统源码+原型+数据库 雨量监测信息管理系统源码+原型+数据库 雨量监测信息管理系统源码+原型+数据库 雨量监测信息管理系统源码+原型+数据库 雨量监测信息管理系统源码+原型+...

    基于IPv6的智能机器人园区异常情况监测系统源码(包括五个子系统).zip

    基于IPv6的智能机器人园区异常情况监测系统源码(包括无线传感器网络、智能巡检机器人、监控数据服务器、主服务器端和监测客户端APP五个子系统。其中,无线传感器网络是以树莓派为核心的基于ZigBee的传感器平台,及...

    基于物联网平台的室内环境监测系统源码.zip

    基于物联网平台的室内环境监测系统源码基于物联网平台的室内环境监测系统源码基于物联网平台的室内环境监测系统源码基于物联网平台的室内环境监测系统源码基于物联网平台的室内环境监测系统源码基于物联网平台的室内...

    扬尘在线监测系统方案.doc

    扬尘在线监测系统是一种先进的环保监控解决方案,主要用于监测和管理空气中的颗粒物浓度,尤其是在工地、道路和工业区等场所的扬尘污染。系统结合了物联网、大数据和云计算技术,旨在实现实时、远程和自动化的环境...

    网络舆情监测系统方案建议书.docx

    网络舆情监测系统方案建议书 网络舆情监测系统是一种解决方案,旨在对互联网舆情进行实时监测和分析,以帮助企业、政府和个人更好地了解公众舆论、形势和趋势。下面是该系统的详细说明和关键技术点。 1. 互联网...

    Java矿井气体监测与预警系统的设计与实现

    Java矿井气体监测与预警系统的设计与实现 Java矿井气体监测与预警系统的设计与实现 Java矿井气体监测与预警系统的设计与实现 Java矿井气体监测与预警系统的设计与实现 Java矿井气体监测与预警系统的设计与实现 Java...

    变电设备在线监测系统运行管理规范

    4. 系统的稳定运行与维护:为了保证监测系统的长期稳定运行,必须对系统进行定期的检查、维护和必要的部件更换。同时,还需要对运行环境进行控制,确保监测设备不受外界环境干扰。 5. 运行管理规范:制定相应的管理...

    危险化学品安全生产风险监测预警系统建设指南.docx

    危险化学品安全生产风险监测预警系统建设指南.docx危险化学品安全生产风险监测预警系统建设指南.docx危险化学品安全生产风险监测预警系统建设指南.docx危险化学品安全生产风险监测预警系统建设指南.docx危险化学品...

    基于51单片机的货车超重监测系统仿真设计 包含源程序及仿真文件

    《基于51单片机的货车超重监测系统仿真设计》 在当今的物流行业中,货车超载问题一直是困扰交通安全的一大难题。为了有效解决这一问题,基于51单片机的货车超重监测系统应运而生。这个系统通过集成硬件和软件,实现...

    矿井水文监测系统在煤矿生产中的应用

    文章首先探讨了矿井水文监测系统的3种设计方法,论述了各种矿井水文监测系统在煤矿生产中的应用,包括GSM监测系统、蓝牙监测系统和GPRS监测系统。最后提出了矿井水文监测系统在煤矿生产中的应用质量配套措施:制订与...

    基于51单片机的智能家居环境监测系统论文.doc

    本篇论文主要介绍了基于51单片机技术的智能家居环境监测系统的设计和实现,该系统能够实时监测家居环境中的温湿度和烟雾浓度,并在检测到异常情况时发出声光报警信号,以此来实现智能化的家居环境监测和报警。...

    矿用带式输送机纵向撕裂监测系统的设计与应用

    系统的工作原理是通过发射红外光脉冲并对其进行调制,当红外光通过输送带时,如果输送带表面存在异常情况,比如撕裂、异物等,就会对红外光造成干扰,监测系统能够捕捉到这些干扰信号。随后,系统将这些信号进行分析...

    ​2004-2021年全国疾病监测系统死因监测数据集(现为中国死因检测数据集)

    《全国疾病监测系统死因监测数据集》汇总了全国疾病监测系统(DSPs)2004-2 021年的人口和死亡数据。在进行数据处理和汇总前,我们对每个监测点的数据进行了验 收和质量评定,对错误的数据进行合理的修正,剔除个别...

    JavaScript火灾监测系统.zip

    JavaScript火灾监测系统.zipJavaScript火灾监测系统.zipJavaScript火灾监测系统.zipJavaScript火灾监测系统.zipJavaScript火灾监测系统.zipJavaScript火灾监测系统.zipJavaScript火灾监测系统.zipJavaScript火灾监测...

Global site tag (gtag.js) - Google Analytics