将一下内容保存到一个文件中,赋予可执行权限。运行即可。如果想将输出内容,你可以用管道符号和tee命令结合,将监控信息输出到一个文件日志中。

#!/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