# 매개 변수로 프로세스 이름과 임계 값을 받아
# 프로세스의 메모리 사용량과 임계 값을즈를 비교해
# 임계 값 아래면 GOOD, 임계 값 초과면 BAD을 반환
PROCESS=$1
THRESHOLD=$2
if [ $# -ne 2 ]
then
echo =========================
echo 2 Parameters are required
echo ProcessName and Threshold
exit
fi
PerfResult=`ps -e -o pcpu,args | grep $PROCESS | grep -v grep | awk {'print $1'} | awk '{printf("%d\n",$1 + 0.5)}'`
typeset currel_max=0
for i in $PerfResult
do
if [ $currel_max -lt $i ]
then
currel_max=$i
fi
done
if [ $currel_max -gt $THRESHOLD ]
then
echo BAD
else
echo GOOD
fi
프로세스의 메모리(가상 메모리 - top 명령의 VIRT 값) 크기 수집 규칙을 위한 쉘 스크립트
# 매개 변수로 프로세스 이름을 받아 가상 메모리 크기를 반환
# SCOM은 여러 행이 리턴되는 경우 처리를 못 해주기 때문에
# 프로세스가 여러 개인 경우 가장 큰 값만 반환
PROCESS=$1
if [ $# -ne 1 ]
then
echo ========================
echo Process Name is required.
exit
fi
# Parameter is Process Name
PROCESS=$1
PerfResult=`ps -eo vsz,args | grep $PROCESS | grep -v grep | awk {'print $1'}`
# In case of many instances, Return Maximum value
typeset currel_max=0
for i in $PerfResult
do
if [ $currel_max -lt $i ]
then
currel_max=$i
fi
done
echo $currel_max
프로세스의 메모리(가상 메모리 - top 명령의 VIRT 값) 크기 모니터를 위한 쉘 스크립트 #1
# 매개 변수로 프로세스 이름과 임계 값을 받아
# 프로세스의 메모리 사용량과 임계 값을 비교해
# 임계 값 아래면 GOOD, 임계 값 초과면 BAD을 반환
PROCESS=$1
THRESHOLD=$2
if [ $# -ne 2 ]
then
echo =========================
echo 2 Parameters are required
echo ProcessName and Threshold
exit
fi
PerfResult=`ps -eo vsz,args | grep $PROCESS | grep -v grep | awk {'print $1'}`
# In case of many instances, Return Maximum value
typeset currel_max=0
for i in $PerfResult
do
if [ $currel_max -lt $i ]
then
currel_max=$i
fi
done
if [ $currel_max -gt $THRESHOLD ]
then
echo BAD
else
echo GOOD
fi
프로세스의 메모리(가상 메모리 - top 명령의 VIRT 값) 크기 모니터를 위한 쉘 스크립트 #2
# 매개 변수로 프로세스 이름과 하한, 상한 임계값을 받아
# 프로세스의 메모리 사용량과 임계 값을 비교해 WARNING, ERROR 또는 GOOD을 반환
PROCESS=$1
THRESHOLD1=$2
THRESHOLD2=$3
if [ $# -ne 3 ]
then
echo ===================================================================
echo usage: MonMEM.sh [ProcessName] [Warning Threshold] [Error Threshold]
exit
fi
# HP-UX에서는 export UNIX95=1 옵션을 주어야 합니다.
PerfResult=`export UNIX95=1; ps -eo vsz,args | grep $PROCESS | grep -v grep | awk {'print $1'}`
# In case of many instances, Return Maximum value
typeset currel_max=0
for i in $PerfResult
do
if [ $currel_max -lt $i ]
then
currel_max=$i
fi
done
if [ $currel_max -gt $THRESHOLD1 ]
then
if [ $currel_max -gt $THRESHOLD2 ]
then
echo ERROR
else
echo WARNING
fi
else
echo GOOD
fi