hang 이란?
- 프로그램이나 시스템이 중단된 상태
- 이 상태에서는 프로그램이 입력에 응답하지 않거나 작업을 계속하지 못함.
#!/bin/bash
source /home/shell/env.sh
# hang=3
pattern="log_increase*"
- 로그 파일의 패턴을 설정
LOG_FILES=($MY_HOME_LOG/$pattern)
- 지정된 패턴에 맞는 로그 파일을 환경 변수 MY_HOME_LOG 경로에서 찾아 배열 LOG_FILES에 저장
result=0
for LOG_FILE in "${LOG_FILES[@]}"
do
# 마지막 1000줄 가져오기
GET_LINES=$(tail -n 1000 $LOG_FILE)
- tail -n 1000 명령어로 로그 파일의 마지막 1000줄을 가져와 GET_LINE 변수에 저장
GET_LAST_NUM=$(echo "$GET_LINES" | tail -n 1 | grep -o '[0-9\+')
- echo "$GET_LINES"로 마지막 1000줄을 출력하고, tail -n 1으로 마지막 줄을 가져온 후, grep -o '[0-9\+'로 숫자만 추출하여 GET_LAST_NUM 변수에 저장
GET_STUCK_NUM=$(echo "$GET_LINES" | grep $GET_LAST_NUM | wc -l)
- echo "$GET_LINES"로 마지막 1000줄을 출력하고, grep $GET_LAST_NUM으로 GET_LAST_NUM과 일치하는 줄을 찾아 wc -l로 줄 수를 계산하여 GET_STUCK_NUM 변수에 저장
# 로그 파일이 변화 없는 시간이 HANGTIME을 초과하면 안 됨.
if ( (GET_STUCK_NUM > HANG_TIME) ); then
result=1
fi
done
echo $result
#!/bin/bash
source /home/shell/env.sh
# hang=3
pattern="log_increase*"
LOG_FILES=($MY_HOEM_LOG/$pattern)
result=0
for LOG_FILE in "${LOG_FILES[@]}"
do
# 마지막 1000줄 가져오기
GET_LINES=$(tail -n 1000 $LOG_FILE)
GET_LAST_NUM=$(echo "$GET_LINES" | tail -n 1 | grep -o '[0-9\+')
GET_STUCK_NUM=$(echo "$GET_LINES" | grep $GET_LAST_NUM | wc -l)
# 로그 파일이 변화 없는 시간이 HANGTIME을 초과하면 안 됨.
if ( (GET_STUCK_NUM > HANG_TIME) ); then
result=1
fi
done
echo $result
'리눅스' 카테고리의 다른 글
모니터링 쉘 스크립트 만들기(9) (0) | 2024.05.29 |
---|---|
모니터링 쉘 스크립트 만들기(8) (0) | 2024.05.29 |
모니터링 쉘 스크립트 만들기(6) (0) | 2024.05.27 |
모니터링 쉘 스크립트 만들기(5) (0) | 2024.05.24 |
모니터링 쉘 스크립트 만들기(4) (0) | 2024.05.23 |