공유할 서비스 선택

TECH


TECH

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

페이지 정보

작성자 미들웨어 아이디로 검색 전체게시물 댓글 0건 조회 201회 좋아요 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 목록
번호 제목 작성자 작성일 조회수
108 Middleware 미들웨어 아이디로 검색 전체게시물 01-19 3
(weblogic 활용) Weblogic 14c 다운로드 & Xming 으로 리눅스에서 GUI 실행, 콘솔 접속 가이드

카테고리 : Middleware

3 0
작성자 : 미들웨어 22/01/19
107 Middleware 미들웨어 아이디로 검색 전체게시물 01-05 49
(docker) Oracle Cloud (OCI) VM서버에서 Docker 설치하기

카테고리 : Middleware

49 0
작성자 : 미들웨어 22/01/05
106 Middleware 미들웨어 아이디로 검색 전체게시물 12-20 92
(JBoss & Wildfly) wildfly 모듈 빌드하는 방법 (mvn package)

카테고리 : Middleware

92 0
작성자 : 미들웨어 21/12/20
105 Middleware 미들웨어 아이디로 검색 전체게시물 12-06 93
(JBoss & Wildfly) JBoss 마이그레이션 툴 "RHAMT" 5.2.0 다운로드 및 설치 방법

카테고리 : Middleware

93 0
작성자 : 미들웨어 21/12/06
104 Middleware 미들웨어 아이디로 검색 전체게시물 11-26 118
(JBoss & Wildfly) 관리 콘솔 모니터링 기능 설명 (CLI모드, 웹콘솔)

카테고리 : Middleware

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

카테고리 : Middleware

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

카테고리 : ETC

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

카테고리 : Middleware

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

카테고리 : OS

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

카테고리 : Middleware

143 0
작성자 : 미들웨어 21/10/20
Total 108건
게시물 검색

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