Threaddump를 생성하는 스크립트
#!/bin/bash
source /home/shell/env.sh
#JAVA_WHERE="/usr/bin"
#JavaNames_gc=("대상 프로세스 이름")
for JavaName in "${JavaNames_gc[@]}"
do
# 검색되는 프로세스들의 PID를 추출
pid=$(ps aux | grep $JavaName | grep -v grep | awk '{print $2}')
# PID가 없을 경우 1 출력 후 종료
if [ -z "$pid" ]; then
echo 1
exit 0
fi
- PID가 없을 경우 1을 출력하고 스크립트를 종료
FILENAME="$MY_HOME/dump/threaddump.$pid.$JavaName.$(date +%Y%m%d_%H%M%S).txt"
- 쓰레드 덤프 파일 이름을 정의
- 해당 파일은 $MY_HOME 디렉토리 아래 dump 폴더에 저장되며, 파일 이름에는 프로세스의 PID와 이름, 그리고 생성 시간이 포함
echo "$pid thread dump가 생성중...."
"$JAVA_WHERE"/jstack $pid > $FILENAME
echo "$FILENAME thread dump 생성 완료!!"
- $JAVA_WHERE 디렉토리 아래의 jstack을 사용하여 쓰레드 덤프를 생성
done
#!/bin/bash
source /home/shell/env.sh
#JAVA_WHERE="/usr/bin"
#JavaNames_gc=("대상 프로세스 이름")
for JavaName in "${JavaNames_gc[@]}"
do
# 검색되는 프로세스들의 PID를 추출
pid=$(ps aux | grep $JavaName | grep -v grep | awk '{print $2}')
# PID가 없을 경우 1 출력 후 종료
if [ -z "$pid" ]; then
echo 1
exit 0
fi
FILENAME="$MY_HOME/dump/threaddump.$pid.$JavaName.$(date +%Y%m%d_%H%M%S).txt"
echo "$pid thread dump가 생성중...."
"$JAVA_WHERE"/jstack $pid > $FILENAME
echo "$FILENAME thread dump 생성 완료!!"
done
'리눅스' 카테고리의 다른 글
WEB, WAS 연동 (0) | 2024.05.29 |
---|---|
모니터링 쉘 스크립트 만들기(15) (0) | 2024.05.29 |
모니터링 쉘 스크립트 만들기(13) (0) | 2024.05.29 |
모니터링 쉘 스크립트 만들기(12) (0) | 2024.05.29 |
모니터링 쉘 스크립트 만들기(11) (0) | 2024.05.29 |