十五年测试老手,长期负责WEB\APP 项目测试,目前主要负责团队管理工作。

【转】Linux资源监控Shell

上一篇 / 下一篇  2011-07-31 19:47:43 / 个人分类:liunx相关

#!/bin/sh
##########
myName=$0
cmd=$1
mypid=$$

myPath=`echo ${myName} | sed "s/getcpu.sh//g"`
myoutputpath="${myPath}opbill/"
mypid_file="${myoutputpath}.mypid"
mytmp_file="${myoutputpath}.tmpMyCmd"
mynetstat_file="${myoutputpath}.netstat"

###########
. ${myPath}/common.sh
. ${myPath}/config.ini

##########
userName=$userName
cmdKeys=`echo "${MYCOMMAND}" | sed "s/ /__/g"`
cmdKeys=`echo "${cmdKeys}" | sed "s/||/ /g"`
filterKey="grep |getcpu.sh|vi |tail |mycmd.sh"

############
if [ -d ${myoutputpath} ]; then
                echo "${myoutputpath} exist"
else
                mkdir -p $myoutputpath
                echo "mkdir $myoutputpath"
fi

##########
if [ "aaa${cmd}" = "aaastop" ]; then
        tmpPid=`cat ${mypid_file}`
        echo "$tmpPid"
        tmpUser=`whoami`
        upids=`ps -o pid,ppid -u $tmpUser |${gv} "PID" |grep "${tmpPid}" |awk '{print $1}'`
        for upid in $upids
        do
                echo "${upid} killed!"
                kill -9 $upid
        done
        exit
fi   

#############
if [ -f ${mypid_file} ]; then
   tmpPid=`cat ${mypid_file}`
   line=`${pp} $tmpPid | grep $myName `
   if [ "aaa$line" = "aaa" ]; then
       echo "$mypid" > ${mypid_file}
   else
      echo "Another $myName is runing !!"
      exit
   fi  
else 
   echo "$mypid" > ${mypid_file}
   chmod 777 ${mypid_file}
fi

#############
if [ "aaa$cmdKeys" = "aaa" ]; then
   echo "cmdKey is Null!!"
   exit
fi


#######################################################

###############################################################
GetFormatHeadLine
for cmdKey in $cmdKeys
do
   echo "${headLine}" >> $myoutputpath/${userName}_${cmdKey}.txt
done

${sar} >> ${myoutputpath}/system.txt &
#echo "${headLine}"
while [ true ]
do
                
                #netstat -utnp > ${mynetstat_file}
                lsof -anPi >${mynetstat_file}
                for cmdKey in $cmdKeys
                do
                                key=`echo "${cmdKey}" | sed "s/__/ /g"`
#                    upids=`${pu} $userName | ${gv} "${filterKey}" | grep -i "${key}" |awk '{print $1}'`
                    upids=`${pu} $LOGNAME | ${gv} "${filterKey}" | grep -i "${key}" |awk '{print $1}'`
                    if [ "aaa$upids" = "aaa" ]; then
                       echo "Cannot Find pid!cmdKey is [$cmdKey]"
                    else
                       for upid in $upids
                       do
                                                        GetPidInfo $upid
                                                        echo "${valueLine}" >> $myoutputpath/${userName}_${cmdKey}.txt
                             done
                    fi 
                    
                done
                #echo "okok"
                sleep 5
done

TAG: shell Shell

 

评分:0

我来说两句

Open Toolbar