你要是系统运维人员,就要实时的监控系统的一些重要参数,不如僵尸进程,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
分享到:
相关推荐
源码+原型+数据库 雨量监测信息管理系统源码+原型+数据库 雨量监测信息管理系统源码+原型+数据库 雨量监测信息管理系统源码+原型+数据库 雨量监测信息管理系统源码+原型+数据库 雨量监测信息管理系统源码+原型+...
C语言本科毕业设计猪舍环境监测系统(PHEMS)源码。C语言本科毕业设计猪舍环境监测系统(PHEMS)源码。C语言本科毕业设计猪舍环境监测系统(PHEMS)源码。C语言本科毕业设计猪舍环境监测系统(PHEMS)源码。C语言...
基于IPv6的智能机器人园区异常情况监测系统源码(包括无线传感器网络、智能巡检机器人、监控数据服务器、主服务器端和监测客户端APP五个子系统。其中,无线传感器网络是以树莓派为核心的基于ZigBee的传感器平台,及...
基于物联网平台的室内环境监测系统源码基于物联网平台的室内环境监测系统源码基于物联网平台的室内环境监测系统源码基于物联网平台的室内环境监测系统源码基于物联网平台的室内环境监测系统源码基于物联网平台的室内...
基于Java的车间远程监测系统 基于Java的车间远程监测系统 基于Java的车间远程监测系统 基于Java的车间远程监测系统 基于Java的车间远程监测系统 基于Java的车间远程监测系统 基于Java的车间远程监测系统 基于Java的...
Java矿井气体监测与预警系统的设计与实现 Java矿井气体监测与预警系统的设计与实现 Java矿井气体监测与预警系统的设计与实现 Java矿井气体监测与预警系统的设计与实现 Java矿井气体监测与预警系统的设计与实现 Java...
危险化学品安全生产风险监测预警系统建设指南.docx危险化学品安全生产风险监测预警系统建设指南.docx危险化学品安全生产风险监测预警系统建设指南.docx危险化学品安全生产风险监测预警系统建设指南.docx危险化学品...
文章首先探讨了矿井水文监测系统的3种设计方法,论述了各种矿井水文监测系统在煤矿生产中的应用,包括GSM监测系统、蓝牙监测系统和GPRS监测系统。最后提出了矿井水文监测系统在煤矿生产中的应用质量配套措施:制订与...
基于单片机的谷子穴播播种监测系统研究 基于单片机的谷子穴播播种监测系统研究 基于单片机的谷子穴播播种监测系统研究 基于单片机的谷子穴播播种监测系统研究 基于单片机的谷子穴播播种监测系统研究 基于单片机的...
JavaScript火灾监测系统.zipJavaScript火灾监测系统.zipJavaScript火灾监测系统.zipJavaScript火灾监测系统.zipJavaScript火灾监测系统.zipJavaScript火灾监测系统.zipJavaScript火灾监测系统.zipJavaScript火灾监测...
这些参数需要每天定时,甚至实时进行采集和监测,在传统情况下,一般采用人工现场采集和铺设线路进行采集,前者采集成本高,采集周期长,随机误差大,不利于实时监测,后者监测距离近,监测点数少,布线成本高。...
水情监测(水雨情自动监测系统)实时监测:水库水位、时/日降雨量和现场设备电压;图像监控:定时拍照、越线拍照、实时视频监控;实时预警:警戒水位、汛限水位、大雨/暴雨;统计分析:水位过程曲线、降雨量过程图、...
QGDW 12195-2021 电力监控系统恶意代码监测系统技术规范
基于LabVIEW和单片机的室内环境监测预警系统的设计 基于LabVIEW和单片机的室内环境监测预警系统的设计 基于LabVIEW和单片机的室内环境监测预警系统的设计 基于LabVIEW和单片机的室内环境监测预警系统的设计 基于...
智慧大气监测系统解决方案智慧大气监测系统解决方案智慧大气监测系统解决方案智慧大气监测系统解决方案智慧大气监测系统解决方案智慧大气监测系统解决方案智慧大气监测系统解决方案智慧大气监测系统解决方案智慧大气...
煤矿井下风水管路实时监测系统,压风供水管路远程监测系统,管路在线监测系统,煤矿安全监测系统
为了评价巷道支护结构的受力情况,详细分析计算机在线监测系统的硬件系统和软件系统,并介绍了在线监测系统工作原理和监测系统软件的主要功能,采用计算机在线监测系统对锚杆和锚索轴力进行了实时监测,监测结果表明:"煤...
基于物联网的智慧农业监测系统web端的前端代码,构建智慧农业监测系统web端的整体架构
C#本科毕业设计基于光纤传感原理混凝土结构健康监测系统源码。C#本科毕业设计基于光纤传感原理混凝土结构健康监测系统源码。C#本科毕业设计基于光纤传感原理混凝土结构健康监测系统源码。C#本科毕业设计基于光纤传感...
系统由颗粒物在线监测仪、数据采集和传输系统、视频监控系统、后台数据处理系统及信息监控管理平台共四部分组成。系统集成了物联网、大数据和云计算技术,通过光散射在线监测仪、360球形摄像头、气象五参数采集设备...