Apache Tomcat

설치된 톰캣 버전 확인하는 방법 (How to check Apache Tomcat version)

sstdio.h·2017년 9월 8일·조회 7,653

1. 개요

서버나 PC에 설치되어 실행 중인 톰캣(Tomcat)의 버전을 확인하는 방법이다. 톰캣은 설치 경로, 실행 방식, 배포 형태에 따라 확인할 수 있는 위치가 조금씩 다르므로, 프로세스·로그·기본 애플리케이션을 순서대로 확인하면 된다.


2. 방법

2-1. 프로세스 확인

ps 명령어를 이용해 Tomcat의 Java 프로세스를 확인한다. 실행 옵션에 -Dcatalina.home=... 또는 -Dcatalina.base=...가 포함되어 있으면 톰캣 설치 경로를 찾을 수 있고, 해당 경로의 lib/catalina.jar를 이용해 버전 정보를 확인할 수 있다. 프로세스 문자열 안에 7.0.55처럼 버전과 관련된 문자열이 직접 보이는 경우도 있다.

IFS=$'\n'; psarray=( $(ps -eo pid,user,args | grep java | grep -v grep) );

IFS=' '
for psa in "${psarray[@]}"
do
        pid=$(echo "$psa" | awk '{print $1}')
        user=$(echo "$psa" | awk '{print $2}')
        thome=""
        ver=""

        for c in $(echo "$psa")
        do
                if [[ $c == "-Dcatalina.home="* ]]; then
                        thome=$(echo "$c" | cut -d"=" -f2)
                        ver=$(java -cp "${thome}/lib/catalina.jar" org.apache.catalina.util.ServerInfo | grep 'Server number' | cut -d":" -f2)
                        break
                fi
        done

        printf "%-10s %-10s %-50s %-20s\n" "$pid" "$user" "$thome" "$ver"
done

위 스크립트는 실행 중인 Java 프로세스에서 -Dcatalina.home 값을 찾은 뒤, org.apache.catalina.util.ServerInfo를 실행해 Server number 값을 출력한다. 결과에서 경로가 비어 있다면 해당 Java 프로세스가 톰캣이 아니거나, 톰캣이 다른 방식으로 실행되어 -Dcatalina.home 옵션이 보이지 않는 경우일 수 있다.

설치 경로를 이미 알고 있다면 다음처럼 직접 확인할 수도 있다.

java -cp /path/to/tomcat/lib/catalina.jar org.apache.catalina.util.ServerInfo

또는 톰캣의 bin 디렉터리에 있는 버전 확인 스크립트를 사용할 수 있다.

/path/to/tomcat/bin/version.sh

2-2. 로그 확인

기동 로그인 catalina.out 또는 날짜별로 분리된 catalina.*.log를 확인해도 버전 정보를 찾을 수 있다. 톰캣이 시작될 때 서버 정보, JVM 정보, OS 정보 등이 함께 출력되는 경우가 많다.

grep -i "Server version" /path/to/tomcat/logs/catalina.out
 grep -i "Server number" /path/to/tomcat/logs/catalina.out

로그 파일 위치는 설치 방식에 따라 다를 수 있다. 일반적으로는 $CATALINA_BASE/logs 또는 $CATALINA_HOME/logs 아래에 있다.

2-3. 샘플 애플리케이션 확인

기본으로 포함된 webapps/ROOT/index.jsp를 실행하면 버전 정보가 출력되는 경우가 있다. 브라우저에서 톰캣 기본 페이지에 접속해 확인하는 방식이다.

다만 운영 서버에서는 보안상의 이유로 기본 ROOT 애플리케이션을 삭제하거나 다른 애플리케이션으로 교체하는 경우가 많다. 따라서 이 방법은 개발 환경이나 기본 구성이 유지된 서버에서만 사용할 수 있으며, 외부에 노출된 운영 환경에서는 기본 페이지를 그대로 두지 않는 편이 좋다.

댓글 0

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.