1. 개요
GC Log를 분석하기 위한 스크립트를 작성하고 있으며 활용시에는 반드시 스크립트 점검하고 사용할 것
2. 코드
#!/bin/bash LOG_DIR=/sw/apache-tomcat-8.5.53/logs OUT_LOG=MyGCLog.log GC_HEADER=gc.log.202 set_pid() { PID=`ps -ef | grep java | grep tomcat | awk {'print $2'}` } set_gclog() { NOW_GCLOG=`ls -ltr $LOG_DIR/$GC_HEADER* | tail -1 | awk {'print $9'}` } del_old_tail() { java_elapsed=`ps -eo pid,etime,time,args | grep $1 | grep -v grep | awk {'print $2'}` ps -eo pid,etime,time,args | grep "tail -f $LOG_DIR/$GC_HEADER" | grep -v "$NOW_GCLOG" | grep -v grep | while read line; do if [ "$java_elapsed" \< "`echo $line | awk {'print $2'}`" ]; then kill -9 `echo $line | awk {'print $1'}` fi done } exe_tail() { tail -f $NOW_GCLOG >> $LOG_DIR/$OUT_LOG & } set_pid set_gclog del_old_tail $PID exe_tail #echo $NOW_GCLOG while true; do set_pid if [ "$PID" != "" ]; then #echo $OLD_PID #echo $PID if [ -z "$OLD_PID" ]; then OLD_PID=$PID fi if [ "$OLD_PID" != "$PID" ]; then kill -9 `ps -ef | grep "tail -f $NOW_GCLOG" | awk {'print $2'}` set_gclog exe_tail OLD_PID=$PID fi ##else #echo "xxxx" fi sleep 30 done