Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  shell  >  正文 查看某进程内存使用情況的shell脚本(图文)

查看某进程内存使用情況的shell脚本(图文)

发布时间:2014-10-22   编辑:www.jquerycn.cn
本文介绍下,一个可以检测进程的内存使用情况的shell脚本,有需要的朋友参考下。

以下脚本,可以检测linux下进程的内存使用情况,包括父进程、子进程均可。

有了这个小脚本,用于分析httpd或mysql等的内存使用详情,真是方便多了。

代码如下:
 

复制代码 代码示例:

#!/bin/bash
#linux进程内存使用情况分析
#filename process.sh
#edit by www.jquerycn.cn

if [ $# -ne 1 ] #判断参数是否为空
then
    echo "usage error";
    echo "$0 pid";
    exit 1;
fi

pid=$1
file=/proc/$pid/status //实时内存使用情况
i=0;
lines=0;
kill -SIGWINCH $$
while :
do
   if [ ! -f $file ]
   then
      echo "process exit";
      break;
   fi
   if ((LINES > 0))
   then
      ((lines = LINES - 1))
   else
      ((lines = 20))
   fi
   if (( i % lines == 0 ))
   then
      echo -e "VmPeak\tVmSize\tVmLck\tVmHWM\tVmRSS\tVmData\tVmStk\tVmExe\tVmLib\tVmPTE\tThreads\tSigQ"
   fi
   awk '{
      if($1 ~ /^Vm/) {printf("%s\t", $2);}
      if($1 ~/^Threads:$/) {printf("%s\t", $2);}
      if($1 ~/^SigQ:$/) {printf("%s\t", $2);}
      }
      END{printf("\n");}' $file;
   ((i++))
   sleep 1;
done

代码说明:
1,此sh脚本接收一个参数,参数值为进程的id号。
这个可以用ps -ef查询得到。
比如查询httpd的父、子进程id,运行命令:
 

复制代码 代码示例:
#ps -ef |grep apache

如下图:
进程占用

2,调用方式:
比如上图中,apache父进程的id号为3649,那么运行如下命令:
 

复制代码 代码示例:
#./process.sh 3649
 

即可实时显示该进程的内存使用情况了,如下图:
进程占用

您可能感兴趣的文章:
查看某进程内存使用情況的shell脚本(图文)
python shell是什么
inux shell初级入门教程
Shell 教程
shell命令行参数用法简介
批量下载人人网好友的某一相册的shell脚本
解决PHP中Web程序中shell_exec()执行Shell脚本不成功问题
深入解析tcsh的初始化配置文件
shell变量$#,$@,$0,$1,$2详解
bash shell脚本执行的几种方法

[关闭]