지정된 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
'리눅스' 카테고리의 다른 글
모니터링 쉘 스크립트 만들기(8) (0) | 2024.05.29 |
---|---|
모니터링 쉘 스크립트 만들기(7) (0) | 2024.05.28 |
모니터링 쉘 스크립트 만들기(5) (0) | 2024.05.24 |
모니터링 쉘 스크립트 만들기(4) (0) | 2024.05.23 |
모니터링 쉘 스크립트 만들기(3) (0) | 2024.05.22 |