[서버 관련 포스팅 글]
https://hdhdeveloper.tistory.com/104
https://hdhdeveloper.tistory.com/100
https://hdhdeveloper.tistory.com/99
이번 포스팅에서는
리눅스 서버 환경에서 톰캣 (WAS) 을 구동하고 있을 때,
실행 여부와 상관없이 톰캣을 재구동할 수 있는 스크립트 예제를 작성해보려 한다
먼저 SSH (Secure Shell)로 서버에 접속하자
접속 후에, 예제를 진행하기 위한 스크립트파일을 하나 생성하면 된다
아래 명령어를 통해 스크립트 파일을 생성한다
vi tomcatLoader.sh
파일을 생성했으면 먼저 변수를 선언해주자
dirName = 톰캣 디렉토리 경로
nowDate = 현재 시간 (로그 용)
1
2
3
4
5
6
7
8
|
#!/bin/sh
#tomcat connection off & on
dirName='/tomcat/bin'
nowDate=$(date+"%Y-%m-%d %H:%M:%S")
|
cs |
서버를 리로드하기 위해 톰캣을 종료하고,
해당 톰캣이 물고있었던 PID를 풀어줘야 한다
톰캣이 종료되면서, PID를 계속 놓아주지 않는 경우가 있어서, 필요한 작업이다
아래처럼 작성하자
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
#!/bin/sh
#tomcat connection off & on
dirName='/tomcat/bin'
nowDate=$(date+"%Y-%m-%d %H:%M:%S")
echo "${nowDate} tomcat Reload Start"
#톰캣 종료 스크립트 실행
$dirName/shutdown.sh
# 5초 슬립
sleep 5
echo "${nowDate} tomcat is now terminated"
if [ -z "`ps -eaf|grep java|grep /tomcat/bin`"]; then
echo "${nowDate} Tomcat was not started"
else
ps -eaf|grep java|grep /tomcat/bin |awk '{print $2}'|
while read PID
do
echo "${nowDate} Killing $PID"
kill -9 $PID
echo "${nowDate} Tomcat is being shutdowned"
done
fi
|
cs |
톰캣이 실행되어있는 상태에서는 [while] 문을 열어서 PID 를 kill 해주는 구문이다
톰캣이 붙잡고 있는 PID를 kill 해주지 않으면, 톰캣을 실행하면서 서버 오류를 내뱉을 것이다.
(Already In Use... 어쩌구 하는 오류)
여기까지 진행했으면, 정상적으로 톰캣을 셧다운 했다
이제 다시 톰캣을 실행 시키는 구문이 필요하다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
$dirName/startup.sh
sleep 10
if [-z"`ps -eaf|grep java|grep /tomcat/bin`" ];then
echo "${nowDate} Error!!! Cannot start tomcat server."
else
echo "${nowDate} Tomcat restart succcessfully. "
fi
|
cs |
위 if 종결문 부터 바로 이어서 보면 된다
startup 스크립트를 실행시켜서 톰캣을 실행한다
10초를 sleep 시켜준 후, 다시 톰캣을 확인하고, 정상적으로 올라왔으면, successfully 구문이 나올 것이다
여기까지 작성을 완료했으면,
:wq!
를 입력해서 저장 후, 스크립트를 빠져나오면 된다
이제 생성한 스크립트를 테스트해보자
[./tomcatLoader.sh]
내가 스크립트를 생성한 경로에서 위 구문을 입력하면, 스크립트가 실행되는데
톰캣이 정상적으로 리로드 되는지 확인하면 완료다 !
여기서 생성한 스크립트를 서버에서 자동으로 실행시키고 싶으면,
리눅스 작업 스케쥴러인 CronTab 을 이용하면 된다
CronTab 사용방법
해당 명령어를 입력해서 쉘 스크립트파일을 열어보자
vi /etc/crontab
해당 파일로 들어가보면
[* * * * * root /test/test] 이런 식으로 적혀있는 문구들이 보일 것이다
cron을 사용해봤으면 이해할 수 있는데,
사용 방법은 아래 이미지에 나와있다
내가 생각해서 만들기 정 귀찮으면, 아래 사이트처럼 cron식으로 생성해주는 사이트가 존재한다
여기서 원하는 cron식으로 생성해서 동일하게 입력해주고 저장 후 나오면
저장 시점부터 내가 지정한 시간에 주기적으로 실행될 것이다
'개발 > BACK' 카테고리의 다른 글
[Mysql] limit 페이징에서 쿼리 조회 건 수 구하기 SQL_CALC_FOUND_ROWS (0) | 2022.06.15 |
---|---|
[Ubuntu] 서버 Tomcat 꺼지면 재시작하는 스크립트 작성하기 (0) | 2022.05.23 |
[SpringFramework] 게시판 페이징 기능 예제 ,쉽게 페이징을 구현하자 (0) | 2022.05.10 |
[Ubuntu 보안 설정] Fail2Ban SSH 구축 방법 무작위 대입 공격 (Brute-Force) 대응하기 (0) | 2022.05.03 |
Linux Ubuntu 톰캣 서버 구축 [1] (0) | 2022.04.28 |