공유할 서비스 선택

TECH


TECH

Middleware (Tomcat) tomcat 9 스크립트 공유 (setenv.sh / kill.sh / memory_dump.sh / t…

페이지 정보

작성자 미들웨어 아이디로 검색 전체게시물 댓글 0건 조회 3,025회 좋아요 0회 작성일 21-11-08 13:59

본문

안녕하세요. 미들웨어 입니다.

 

이번엔 Tomcat 9 version 에서 자주 사용하는 스크립트 파일을 공유해드리겠습니다.

아래 내용에서 경로만 수정해서 사용하시면 여러모로 편리하게 사용할 수 있습니다.

 


1. setenv.sh

tomcat 에서 사용하는 JAVA_OPT 옵션 설정을 한곳에서 하는 내용 입니다.

각 경로만 설정 잘하시고 사용하시면 됩니다.

 

 #!/bin/sh

# setenv.sh

export MODULE_CODE="클럭스"
export MODULE_NAME="tomcat9-test1"
export MODULE_ENV="prd"
export MODULE_IDX="11"

export JAVA_HOME="/usr/local/jdk1.8"
export CATALINA_HOME="/home/tomcat/tomcat9"
export CATALINA_BASE="/home/tomcat/tomcat9-test1"

export SERVER_PORT=8005
export AJP_PORT=80099
export HTTP_PORT=8080
export REDIRECT_PORT=8003
export JVM_ROUTE="ibe${MODULE_NAME}${MODULE_IDX}"
export USER="tomcat"

export SERVER_NAME="${MODULE_CODE}${MODULE_NAME}${MODULE_ENV}${MODULE_IDX}"

MAX_THREADS=400
ACCEPT_COUNT=200

# ----------------------------------------------------------
# tomcat opts
# ----------------------------------------------------------
JAVA_OPTS="-Dtomcat.server.port=${SERVER_PORT}"
JAVA_OPTS="${JAVA_OPTS} -Dtomcat.ajp.port=${AJP_PORT}"
JAVA_OPTS="${JAVA_OPTS} -Dtomcat.http.port=${HTTP_PORT}"
JAVA_OPTS="${JAVA_OPTS} -Dtomcat.redirect.port=${REDIRECT_PORT}"
JAVA_OPTS="${JAVA_OPTS} -Dtomcat.jvm.route=${JVM_ROUTE}"
export JAVA_OPTS

CATALINA_OPTS="-server"

# ----------------------------------------------------------
# performanc opts
# ----------------------------------------------------------
CATALINA_OPTS="${CATALINA_OPTS} -Dtomcat.max.threads=${MAX_THREADS}"
CATALINA_OPTS="${CATALINA_OPTS} -Dtomcat.accept.count=${ACCEPT_COUNT}"

# ----------------------------------------------------------
# component opts
# ----------------------------------------------------------
CATALINA_OPTS="${CATALINA_OPTS} -Dserver.name=${SERVER_NAME}"
CATALINA_OPTS="${CATALINA_OPTS} -Dserver_name=${SERVER_NAME}"
CATALINA_OPTS="${CATALINA_OPTS} -Dmodule.code=${MODULE_CODE}"
CATALINA_OPTS="${CATALINA_OPTS} -Dmodule.docbase=/app/tomcat/"
CATALINA_OPTS="${CATALINA_OPTS} -Dlog.dir=${LOG_DIR}"
CATALINA_OPTS="${CATALINA_OPTS} -Dspring.profiles.active=default"

# ----------------------------------------------------------
# jvm memory opts
# ----------------------------------------------------------
CATALINA_OPTS="${CATALINA_OPTS} -Xms2048m -Xmx2048m"
CATALINA_OPTS="${CATALINA_OPTS} -XX:MaxNewSize=512m -XX:MaxPermSize=512m"

# ----------------------------------------------------------
# jmx opts
# ----------------------------------------------------------
#CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote"
#CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.port=12516"
#CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.ssl=false"
#CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.authenticate=false"

#--------------------------------------
# java gc opts
#--------------------------------------
CATALINA_OPTS="${CATALINA_OPTS} -XX:+DoEscapeAnalysis"
CATALINA_OPTS="${CATALINA_OPTS} -XX:+UseCompressedOops"
CATALINA_OPTS="${CATALINA_OPTS} -XX:+UseParallelGC"
CATALINA_OPTS="${CATALINA_OPTS} -XX:+UseParallelOldGC"
# CATALINA_OPTS="${CATALINA_OPTS} -verbose:jni"
# CATALINA_OPTS="${CATALINA_OPTS} -verbose:class"
CATALINA_OPTS="${CATALINA_OPTS} -verbose:gc"
CATALINA_OPTS="${CATALINA_OPTS} -Xloggc:${LOG_DIR}/gc.log.`date +%Y%m%d%H%M%S`"
CATALINA_OPTS="${CATALINA_OPTS} -XX:+PrintGCDetails"
CATALINA_OPTS="${CATALINA_OPTS} -XX:+PrintGCTimeStamps"
CATALINA_OPTS="${CATALINA_OPTS} -XX:+PrintHeapAtGC"
CATALINA_OPTS="${CATALINA_OPTS} -XX:+HeapDumpOnOutOfMemoryError"
CATALINA_OPTS="${CATALINA_OPTS} -XX:HeapDumpPath=${CATALINA_BASE}"

CATALINA_OPTS="${CATALINA_OPTS} -Djava.net.preferIPv4Stack=true"
CATALINA_OPTS="${CATALINA_OPTS} -Dsun.rmi.dgc.client.gcInterval=3600000"
CATALINA_OPTS="${CATALINA_OPTS} -Dsun.rmi.dgc.server.gcInterval=3600000"
CATALINA_OPTS="${CATALINA_OPTS} -Dsun.lang.ClassLoader.allowArraySyntax=true"
CATALINA_OPTS="${CATALINA_OPTS} -Djava.awt.headless=true"

#--------------------------------------
# scouter opts
#--------------------------------------
SCOUTER_AGENT_DIR="/app/scouter/agent.java-2.1"
CATALINA_OPTS=${CATALINA_OPTS} -javaagent:${SCOUTER_AGENT_DIR}/scouter.agent.jar"
CATALINA_OPTS=${CATALINA_OPTS} -Dscouter.config=${CATALINA_BASE}/conf/scouter.conf"

export CATALINA_OPTS
echo "========================================================================"
echo "JAVA_HOME=${JAVA_HOME}"
echo "CATALINA_HOME=${CATALINA_HOME}"
echo "CATALINA_BASE=${CATALINA_BASE}"
echo "JAVA_OPTS=${JAVA_OPTS}"
echo "CATALINA_OPTS=${CATALINA_OPTS}"
echo "========================================================================"


 

 

 

 

 

2. kill.sh

tomcat 프로세스를 kill 하는 명령어 입니다.

바로 죽일수 있어서 유용? 합니다

 #!/bin/sh

# kill.sh

. ./setenv.sh

ps -ef | grep java | grep "server.name=${SERVER_NAME} " | awk {'print "kill -9 " $2'} | sh -x
 

 

 

 

3. MemoryDump.sh

메모리덤프 명령어 입니다.

 #!/bin/sh

# mdump.sh - heap memory dump

. ./env.sh

ps -ef | grep java | grep "server.name=${SERVER_NAME} " | awk {'print "${JAVA_HOME}/bin/jmap -dump:format=b,file=${TOPAS_SERVER_NAME}-$(date +"%Y%m%d%H%M%S" ).hprof "$2'} | sh -x

 

 

 


4. shutdown.sh

tomcat 인스턴스를 shutdown 하는 명령어 입니다.

 #!/bin/sh

# stopNode.sh

. ./setenv.sh

${CATALINA_HOME}/bin/shutdown.sh
 

 

 

 

5. startup.sh

tomcat 인스턴스를 기동하는 명렁어 입니다.

 #!/bin/sh

# startNode.sh

. ./setenv.sh

#
# check user for can't run as root
#
UNM=`id -u -n`
if [ "x${UNM}" != "x${USER}" ]; then
  echo "You can't start ${SERVER_NAME} server..."
  exit;
fi

#
# check previous process was alive
#
PID=`ps -ef | grep java | grep "server.name=${SERVER_NAME}| awk '{print $2}'`
echo "#"
echo "# tomcat7-${SERVER_NAME} process id : $PID"
echo "#"
if [ "x$PID" != "x" ]; then
    echo "Tomcat 7 ${SERVER_NAME} is already Running..."
    exit;
fi

# ${CATALINA_HOME}/bin/catalina.sh run
${CATALINA_HOME}/bin/startup.sh
 

 

 

 

6. ThreadDump.sh

Tomcat 에서 가장 중요한 Thread 를 dump 뜨는 명령어 입니다.

 #!/bin/bash

# tdump.sh - thread dump

. ./setenv.sh

count=3
delay=10
while [ $count -gt 0 ]; do
    ps -ef | grep java | grep "server.name=${SERVER_NAME} " | awk {'print "${JAVA_HOME}/bin/jstack "$2'} | sh -x >> ${TOPAS_SERVER_NAME}-$(date +"%Y%m%d%H%M%S" ).tdump
    sleep $delay
    let count--
    echo -n "."
done
 

 

 

 

7. tail.sh

로그 파일을 실시간 tail 설정해둬서 보기 편하게 하는 명령어 입니다

 #!/bin/sh

# tail.sh

. ./setenv.sh

tail -f ${CATALINA_BASE}/logs/catalina.out
 

 

이상 이번 스크립트 가이드를 마치겠습니다. 

열공하세요~

 

 

댓글목록

등록된 댓글이 없습니다.

TECH 목록
번호 제목 작성자 작성일 조회수
104 Middleware 미들웨어 아이디로 검색 전체게시물 11-26 2559
(JBoss & Wildfly) 관리 콘솔 모니터링 기능 설명 (CLI모드, 웹콘솔)

카테고리 : Middleware

2,559 0
작성자 : 미들웨어 21/11/26
103 Middleware 미들웨어 아이디로 검색 전체게시물 11-19 1748
(JBoss & Wildfly) CJMX란? 사용방법 가이드 (Code Cache 불러오기)

카테고리 : Middleware

1,748 0
작성자 : 미들웨어 21/11/19
102 ETC Leesangwoo 아이디로 검색 전체게시물 11-12 6622
[ MariaDB ] MariaDB 상태확인 및 점검

카테고리 : ETC

6,622 0
작성자 : Leesangwoo 21/11/12
열람중 Middleware 미들웨어 아이디로 검색 전체게시물 11-08 3026
열람중
(Tomcat) tomcat 9 스크립트 공유 (setenv.sh / kill.sh / memory_dump.sh / tail.sh / startup.sh / shutdown.sh)

카테고리 : Middleware

3,026 0
작성자 : 미들웨어 21/11/08
100 OS LeeHyongDong 아이디로 검색 전체게시물 10-20 4049
[Linux] NFS 동작 아키텍쳐 및 포트 변경

카테고리 : OS

4,049 0
작성자 : LeeHyongDong 21/10/20
99 Middleware 미들웨어 아이디로 검색 전체게시물 10-20 1596
(Kubernetes-5) 신규VM 생성, kubectl 설치 후 접속 방법

카테고리 : Middleware

1,596 0
작성자 : 미들웨어 21/10/20
98 Middleware 미들웨어 아이디로 검색 전체게시물 10-05 1559
(Kubernetes-4) docker 설치 & 삭제하기

카테고리 : Middleware

1,559 0
작성자 : 미들웨어 21/10/05
97 OS LeeHyongDong 아이디로 검색 전체게시물 09-28 1829
[Linux] ansible 플레이북 작성 및 실행

카테고리 : OS

1,829 0
작성자 : LeeHyongDong 21/09/28
96 Middleware 미들웨어 아이디로 검색 전체게시물 09-23 1843
(Kubernetes-3) prometheus & Grafana 활용하여 모니터링 구성하기

카테고리 : Middleware

1,843 0
작성자 : 미들웨어 21/09/23
95 Middleware 미들웨어 아이디로 검색 전체게시물 09-06 2690
(Kubernetes-2) 오라클 클라우드로(무료 VM) 쿠버네티스 (OKE) 생성 및 Nginx 기동

카테고리 : Middleware

2,690 0
작성자 : 미들웨어 21/09/06
Total 204건
게시물 검색

주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 www.chlux.co.kr All rights reserved.
상단으로Top