当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [求助]各位大神帮忙看一下这两个脚本好么? 如果能帮忙修改一下感激不尽!
帖子发表于 : 2010-08-13 13:57 

注册: 2010-07-01 17:10
帖子: 15
送出感谢: 0 次
接收感谢: 0 次
我的毕业设计需要做个实验,我在网上抄了两个脚本,第一个生成log文档,记录httpd进程的内存使用情况,第二个用来自动激发第一个脚本。可是运行的时候没有反应,也没有生成log文档。麻烦帮忙看看哪里出了错误好么?非常感谢!!

好像是因为我监控的是Apache服务器的进程,而进程没有结束的时候是不能生成LOGFILE的。

脚本里哪里可以更改一下呢?我想修改一下,实现以下功能:

1. 第二个脚本用来自动激发第一个脚本,每隔2秒激发一次。

2. 每次激发第一个脚本时候,不管监控的httpd进程是否结束,都写入LOG FILE,每次激发写入一次。

请问怎么修改脚本好呢?

第一个脚本(监控):
代码:
#!/bin/sh
#G.sh 20100813

USAGE="Usage: $0 processName"

if [ $# -ne 1 ]; then
  echo $USAGE
  exit 1
fi

# In case the monitored process has not yet started
# keep searching until its PID is found
PROCESS_PID=""
while :
do
  PROCESS_PID=`/bin/pidof $1`

  if [ "$PROCESS_PID.X" != ".X" ]; then
  break
  fi
done

LOG_FILE="memusage.csv"

echo "ElapsedTime,VmSize,VmRSS" > $LOG_FILE

ELAPSED_TIME=`date +%H:%M:%S:%N`
PERIOD=2 # seconds

while :
do
 if [ -d /proc/$PROCESS_PID ] ; then
  VM_SIZE=`awk '/VmSize/ {print $2}' < /proc/$PROCESS_PID/status`
  if [ "$VM_SIZE.X" = ".X" ]; then
  continue
  fi
  VM_RSS=`awk '/VmRSS/ {print $2}' < /proc/$PROCESS_PID/status`
  if [ "$VM_RSS.X" = ".X" ]; then
  continue
  fi

  echo "$ELAPSED_TIME,$VM_SIZE,$VM_RSS" >> $LOG_FILE
  sleep $PERIOD
  VM_SIZE=""
  VM_RSS=""
  ELAPSED_TIME=`date +%H:%M:%S:%N`
 else
 echo "$1 is no longer a running process"
 exit 0
 fi
done





第二个脚本(自动激发):
代码:
#!/bin/sh
#
#GetMemUsage launch script

cmd=$1

if [ -n $cmd ] ; then
  ./G httpd $cmd &
  $cmd
  wait
fi
if ps x | perl -ne 'print if /\b'$cmd'\b/' > /dev/null 2>&1 ; then
wait
else
exit 0
fi


页首
 用户资料  
 
2 楼 
 文章标题 : Re: [求助]各位大神帮忙看一下这两个脚本好么? 如果能帮忙修改一下感激不尽!
帖子发表于 : 2010-08-13 13:59 

注册: 2010-07-01 17:10
帖子: 15
送出感谢: 0 次
接收感谢: 0 次
:em01 等大家帮忙


页首
 用户资料  
 
3 楼 
 文章标题 : Re: [求助]各位大神帮忙看一下这两个脚本好么? 如果能帮忙修改一下感激不尽!
帖子发表于 : 2010-08-13 16:48 
头像

注册: 2008-11-05 13:24
帖子: 1024
送出感谢: 0 次
接收感谢: 5
koshihaku 写道:
第二个脚本(自动激发):
代码:
#!/bin/sh
#
#GetMemUsage launch script

cmd=$1

if [ -n $cmd ] ; then
  ./G httpd $cmd &
  $cmd
  wait
fi
if ps x | perl -ne 'print if /\b'$cmd'\b/' > /dev/null 2>&1 ; then
wait
else
exit 0
fi

是不是这个 httpd 该去掉, 第一个和第二个 sh 的$1 是一个吧.


_________________
笔记
-------------------------------------
http://blog.163.com/wqt_1101


页首
 用户资料  
 
4 楼 
 文章标题 : Re: [求助]各位大神帮忙看一下这两个脚本好么? 如果能帮忙修改一下感激不尽!
帖子发表于 : 2010-08-16 14:57 

注册: 2010-07-01 17:10
帖子: 15
送出感谢: 0 次
接收感谢: 0 次
去掉了就提示输入进程名称了。我本来想监控httpd进程,可是执行脚本没有反应,改为尝试监控apache2进程的时候又出错 说too many arguments


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译