이 스크립트는 주어진 Java 프로세스들의 GC(Garbage Collection) 카운트를 확인하고, 최대 GC 카운트를 출력하는 작업을 수행합니다.

 


#!/bin/bash

source /home/shell/env.sh


#JAVA_WHERE="/usr/bin"
#JavaNames_gc=("대상 프로세스 이름")

max_GC_COUNT=0
for JavaName in "${JavaNames_gc[@]}"

  • 배열 JavaNames_gc의 각 요소에 대해 루프를 시작

do


# 검색되는 프로세스들의 PID를 추출
pid=$(ps aux | grep $JavaName | grep -v grep | awk '{print $2}')

  • ps aux 명령어로 모든 프로세스를 나열하고, grep $JavaName으로 해당 Java 프로세스 필터링
  • grep -v grep으로 grep 명령 자체를 제외하고, awk '{print $2}'로 PID 추출


# PID가 없을 경우 101 출력 후 종료
if [ -z "$pid" ]; then
    echo 101
    exit 0
fi


# gc 카운트를 출력
GC_COUNT=$("$JAVA_WHERE"/jstat -gcold "$pid" | tail -n 1 | awk '{print $8}')

  • jstat -gcold $pid 명령어로 지정된 PID의 GC 정보를 확인하고, tail -n 1으로 마지막 줄을 추출
  • awk '{print $8}'로 GC 카운트를 추출


if [ $GC_COUNT -gt $max_GC_COUNT ]
then
    max_GC_COUNT=$GC_COUNT
fi

done

echo $max_GC_COUNT

 


더보기

#!/bin/bash

source /home/shell/env.sh


#JAVA_WHERE="/usr/bin"
#JavaNames_gc=("대상 프로세스 이름")

max_GC_COUNT=0
for JavaName in "${JavaNames_gc[@]}"
do


# 검색되는 프로세스들의 PID를 추출
pid=$(ps aux | grep $JavaName | grep -v grep | awk '{print $2}')

# PID가 없을 경우 101 출력 후 종료
if [ -z "$pid" ]; then
    echo 101
    exit 0
fi


# gc 카운트를 출력
GC_COUNT=$("$JAVA_WHERE"/jstat -gcold "$pid" | tail -n 1 | awk '{print $8}')

if [ $GC_COUNT -gt $max_GC_COUNT ]
then
    max_GC_COUNT=$GC_COUNT
fi

done

echo $max_GC_COUNT

+ Recent posts