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

标签: 系统 知道 | 发表时间:2013-08-26 15:09 | 作者:liuguiyangnwpu
出处:http://blog.csdn.net

       你要是系统运维人员,就要实时的监控系统的一些重要参数,不如僵尸进程,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


作者:liuguiyangnwpu 发表于2013-8-26 15:09:30 原文链接
阅读:83 评论:0 查看评论

相关 [系统 知道] 推荐:

Linux系统管理员应该知道监控工具

- - CSDN博客推荐文章
如果想监控Linux服务器的性能,请试一下内置的shell命令和一些附加的工具. 很多Linux发行版都有“成吨”的监控工具. 这些工具提供了可度量信息,用于观察系统的活动,找到导致系统性能的可疑之处. 我们下面讨论的工具是一些最基本的. 命令,可以用来系统的分析和服务的调试:. 3、找出CPU、内存瓶颈.

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

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

系统管理员应该知道的9个kubectl命令

- - DockOne.io
【编者的话】kubectl是kubernetes的一个命令行管理工具,可用于Kubernetes上的应用部署和日常管理. 本文列举了9个常见的kubectl命令,并对每个命令进行了简单扼要的介绍,供大家参考. 同时,大家也可以通过文中连接获取更详细的介绍. 如今,kubernetes已成为IT基础设施管理界的老大,这也意味着系统管理员需要对其管理非常熟悉.

Android系统其实不需要极度精简,您未必知道的瘦身之法

- - 一抹新绿
安卓系统其实不需要极度精简,至少我不推荐这种行为,只是一味的精简并不会给系统带来什么好处反而只有害处,因为许多系统应用跟设置里的选项有关联,应当尽量保证系统的完整性. 后台为什么会无缘无故多出很多进程呢. 如果你真的理解安卓进程管理机制和软件架构的话,就会发现各种Receiver,各种CHANGED事件其实才是主因,一切都是软件进程事件触发自行后台启动造成的.

壳系统

- Vernsu - It Talks-魏武挥的blog
经常有人被我问到“你用什么浏览器”时的答案是:傲游啦360啦,但事实上,这些都不是真正的浏览器,从技术角度讲,充其量只是在IE浏览器上加一个壳罢了. 在国外,壳浏览器是以“皮肤”的形式存在,纯属为了美化浏览器而用. 但在中国,壳浏览器成了一门生意. 奇虎的主要收入来源并非来自那个由于一场商战而赫赫有名的安全卫士,而是来自于360浏览器(它有两个版本,分别以IE和Chrome为内核).

秒杀系统

- - 开源软件 - ITeye博客
秒杀系统架构分析与实战. (反馈非常好的文章,推荐). (1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;(6)卖家发货. (1)低廉价格;(2)大幅推广;(3)瞬时售空;(4)一般是定时上架;(5)时间短、瞬时并发量高;. 假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有:.

百度知道XSS漏洞

- - 博客园_首页
事情的起因是我一同学在百度知道上看到一个很奇怪的,正文带有连接的提问( 这里),正常来说,这种情况是不可能出现的. 我条件反射的想到了:XSS漏洞. 通过查看源代码,我马上发现了问题的根源:未结束的标签.
帮我写一个能提取

[译]你不知道的NodeJS

- - 掘金前端
更新:这篇文章现在是我的书《Node.js进阶》的一部分. 在 jscomplete.com/node-beyond…中阅读此内容的更新版本以及有关Node.js的更多信息. 在今年的Forward.js会议(关于JavaScript的会议)上,我分享了题为“你不知道的NodeJS”的演讲. 在那次演讲中,我向观众提出了一系列有关Nodejs运行时的问题,大多数有技术背景的观众无法回答其中大多数问题.

如何知道你是谁?

- - 改变从这里开始 - 壹心理
作者:Psychouse. 来源:微信公众号:北京心舍(ID:psychouse). 一项研究表明,拥有更好的了解自己的能力可以帮助你做出有效的决定并实现目标. 碧昂斯说:“知道你是谁,是人类拥有的最伟大的智慧. 知道你的目标,你爱什么,你的道德,你的需求,你的标准,你不能容忍什么,你愿意为什么而死.

那些你知道和不知道的千纸鹤

- Brandon - DIY - 果壳网
千纸鹤是一件经典折纸作品,理工男现在就要利用几何知识打破经典,开拓创新. 申明:本文所述作品(除最后一只翻转鹤)均属原创,如有雷同,纯属英雄所见略同. 你将需要的工具和材料有:. 10   一刀纸鹤(非原创). 12   DIYer签到处 12.1   大手牵小手. 正方形是用来折纸的一种完美形状,想要创新,首先就要突破正方形的限制.