지정된 Java 프로세스의 로그 파일에서 마지막 두 줄의 숫자를 비교하고 그 차이를 계산하여 합산합니다.

 


#!/bin/bash

source /home/shell/env.sh


#JavaNames_gc=("대상 프로세스 이름")

total=0

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

log_file=$MY_HOME_LOG/log_gccount_$JavaName.log

  • 각 Java 프로세스의 로그 파일 경로를 설정
  • MY_HOME_LOG는 환경 변수이며, 로그 파일 이름은 log_gccount_<JavaName>.log 형식입니다.


# 마지막 두 줄 가져오기
LAST_TWO_LINES=$(tail -n 2 $log_file)

  • tail -n 2 명령어로 로그 파일의 마지막 두 줄을 가져와 LAST_TWO_LINES 변수에 저장


# 마지막 줄과 마지막에서 두 번째 줄의 숫자 추출
LAST_LINE_NUM=$(echo "$LAST_TWO_LINES" | tail -n 1 | grep -o '[0-9]\+')

  • echo "$LAST_TWO_LINES"로 마지막 두 줄을 출력하고, tail -n 1으로 마지막 줄을 가져온 후, grep -o '[0-9]\+'로 숫자만 추출하여 LAST_LINE_NUM 변수에 저장

SECOND_LAST_LINE_NUM=$(echo "$LAST_TWO_LINES" | head -n 1 | grep -o '[0-9]\+')

  • echo "$LAST_TWO_LINES"로 마지막 두 줄을 출력하고, head -n 1으로 첫 번째 줄을 가져온 후, grep -o '[0-9]\+'로 숫자만 추출하여 SECOND_LAST_LINE_NUM 변수에 저장


# 두 숫자의 차이 계산
DIFFERENCE=$( (LAST_LINE_NUM - SECOND_LAST_LINE_NUM) )

  • LAST_LINE_NUM과 SECOND_LAST_LINE_NUM의 차이를 계산하여 DIFFERENCE 변수에 저장합니다.


# 차이 출력
total=$(expr $total + $DIFFERENCE)

done

echo $total


 

더보기

#!/bin/bash

source /home/shell/env.sh


#JavaNames_gc=("대상 프로세스 이름")

total=0

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

log_file=$MY_HOME_LOG/log_gccount_$JavaName.log

# 마지막 두 줄 가져오기
LAST_TWO_LINES=$(tail -n 2 $log_file)

# 마지막 줄과 마지막에서 두 번째 줄의 숫자 추출
LAST_LINE_NUM=$(echo "$LAST_TWO_LINES" | tail -n 1 | grep -o '[0-9]\+')
SECOND_LAST_LINE_NUM=$(echo "$LAST_TWO_LINES" | head -n 1 | grep -o '[0-9]\+')

# 두 숫자의 차이 계산
DIFFERENCE=$( (LAST_LINE_NUM - SECOND_LAST_LINE_NUM) )

# 차이 출력
total=$(expr $total + $DIFFERENCE)

done

echo $total

+ Recent posts