반응형

#!/bin/sh

SERVICE_HOME=/home1/irteam/service/tube-web
SERVICE_JAR=tube-web_real.jar
DATE2=`date +%Y%m%d`

cd $SERVICE_HOME/patch

if [ -f "$SERVICE_JAR" ];then
echo '[SERVICE] SERVICE Stop...'
cd $SERVICE_HOME/bin
./stop.sh

##프로세스 상태를 체크한다...
checkCount=1
while [ "$checkCount" != "0" ]
do
checkCount=$(ps -ef | grep $SERVICE_JAR | grep -v grep | wc -l)
echo "프로세스 종료 진행 중"
sleep 2;
done


echo '[SERVICE] '$SERVICE_JAR' backUp..'
cd $SERVICE_HOME/jar

SERVICE_JAR_BACK=$SERVICE_JAR'.'$DATE2
if [ -f "$SERVICE_JAR_BACK" ];then
COUNT=$(ls | grep $SERVICE_JAR_BACK | wc -l)
cp $SERVICE_JAR $SERVICE_JAR_BACK'_'$COUNT
echo '[SERVICE] backUp File : '$SERVICE_JAR_BACK'_'$COUNT
else
cp $SERVICE_JAR $SERVICE_JAR_BACK
echo '[SERVICE] backUp File : '$SERVICE_JAR_BACK
fi

echo '[SERVICE] '$SERVICE_JAR' patch!!'
mv $SERVICE_HOME/patch/$SERVICE_JAR $SERVICE_HOME/jar/$SERVICE_JAR
sleep 1;
echo '[SERVICE] SERVICE Start !!'
cd $SERVICE_HOME/bin
./start.sh
else
echo "patch File not exist"
echo $SERVICE_HOME"/patch 파일이 없습니다. 패치가 진행될 JAR파일이 필요합니다."

fi

 

해당 스크립트는

SERVICE_HOME의 patch 디렉토리에 해당 SERVICE_JAR를 넣으면 패치를 진행해줍니다.

해당 프로세스는

1) SERVICE_HOME의 서비스 종료

2) 해당 프로세스가 종료되었는지 체크(2초간격)

3) SERVICE_HOME의 SERVICE_JAR파일 백업
: 만약 tube-web_alpha-internal.jar.20200407 과 tube-web_alpha-internal.jar.20200407_1 이 있을 경우 tube-web_alpha-internal.jar.20200407_2 로 백업을 진행해줍니다.

4) 해당 Patch 디렉토리의 JAR파일 변경

5) 서비스 시작

 

해당 스크립트를 사용하기위해서는 

SERVICE_HOME, SERVICE_JAR의 값을 변경후 진행하시면됩니다.

patch 디렉토리 생성이 필요합니다.

 

 

'Server' 카테고리의 다른 글

mac 포트 확인, kill  (0) 2022.06.29
Mac 단축키 변경  (0) 2021.08.24
Apache AJP 통신 문제에 따른 조치방안  (0) 2020.11.11
cat , tail 명령어 정리  (0) 2019.09.16
리눅스 Tar 압축, 풀기  (0) 2016.08.09

+ Recent posts