반응형
1. jboss_start.sh : 시작 스크립트 |
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
#!/bin/sh
JBOSS_DIR=/CLOUD/JBOSS/domains
# 노드가 1개 일 경우(JBOSS_DIR 하위 디렉터리 수를 카운트 해서 1 이면)
if [ `ls $JBOSS_DIR | wc -l` -eq 1 ]; then
# 노드 리스트 저장(/CLOUD/JBOSS/domains/노드명을 /로 매칭
# cut -d/ -f1 : 구분자를 뒤에서 첫번째 /로 잘라냄(즉, 노드명만 잘라냄)
node_list=`ls -F $JBOSS_DIR | grep / | cut -d/ -f1`
# 날짜, 시간 저장
DATE=`date +%Y%m%d%H%M%S`
# 각 노드의 환경설정 스크립트(env.sh) 수행
. ${JBOSS_DIR}/${node_list}/bin/env.sh
# PID 저장 : java 프로세스 중 노드명을 매칭 후 두 번째 값 추출
PID=`ps -ef | grep java | grep "=$SERVER_NAME " | awk '{print $2}'`
echo $PID
# JBoss 프로세스 ID가 없으면(문자e를 넣어 문자e가 아니면 jboss 프로세스가 실행된 것임)
if [ e$PID != "e" ]; then
echo "JBoss SERVER - $SERVER_NAME is already RUNNING..."
exit;
fi
# 계정명 저장
UNAME=`id -u -n`
# 만약 접속 계정명이 jboss 이면
if [ e$UNAME != "e$JBOSS_USER" ]; then
echo "Use $JBOSS_USER account to start JBoss SERVER - $SERVER_NAME..."
exit;
fi
# 설정한 JAVA_OPTS 출력
echo $JAVA_OPTS
# JBOSS EAP 스크립트 수행. -DSERVER=노드명, -P=환경 설정값, -c : 환경설정 파일(standalone-ha.xml), nohup(백그라운드 실행), 로그 생성
nohup $JBOSS_HOME/bin/standalone.sh -DSERVER=$SERVER_NAME -P=$DOMAIN_BASE/$SERVER_NAME/bin.env.properties -c $CONFIG_FILE >> $LOG_HOME/nohup/${SERVER_NAME}_${DATE}.out &
# 버퍼에 있는 값과 동일하면
if [ e$1 = "enotail" ]; then
echo "Staring... $SERVER_NAME"
exit;
fi
# server.log 마지막 내용 출력
tail -f $LOG_HOME/server.log
# 노드가 2개 이상일 경우
else
echo -e "\nInput JBoss Node Name."
# 노드 리스트 한줄로 출력(탭으로 구분)
echo -e "Node List : $(ls -F $JBOSS_DIR | grep / | cut -d/ -f1 | grep -v -e '^$' | tr "\n" "\t")\n"
# 노드명 출력 후 ID 입력 받음
read -p " [ JBoss Node Name ] : " ID
# 입력 받은 노드명 저장
JBOSS_NODE=$JBOSS_DIR/${ID}
# 입력받은 값이 없으면 노드 리스트 다시 출력
if [[ $ID == "" ]]; then
echo -e "\nSpace or Enter is not allowed..."
echo -e "Node List : $(ls -F $JBOSS_DIR | grep / \ cut -d/ -f1 | grep -v -e '^$' | tr "\n" "\t")\n"
echo -e "Return script after node name resolution\n"
exit;
# 노드가 입력되었다면 날짜 저장
elif [ -d $JBOSS_NODE ]; then
DATE=`date + %Y%m%d%H%M%S`
# 노드별 환경설정 스크립트(env.sh)실행
. ${JBOSS_NODE}/bin/env.sh
# jboss 프로세스 번호 저장
PID=`ps -ef | grep java | grep "=$SERVER_NAME " | awk '{print $2}'`
echo $PID
# jboss 프로세스가 실행되어 있으면
if [ e$PID != "e" ]; then
echo "JBoss SERVER - $SERVER_NAME is already RUNNING..."
exit;
fi
# 계정명 저장
UNAME=`id -u -n`
# jboss 유저명과 계정명이 동일하지 않으면
if [ e$UNAME != "e$JBOSS_USER" ]; then
echo "Use $JBOSS_USER account to start JBoss SERVER - $SERVER_NAME..."
exit;
fi
# 설정된 JAVA_OPTS 출력
echo $JAVA_OPTS
# JBOSS EAP 스크립트 수행. -DSERVER=노드명, -P=환경 설정값, -c : 환경설정 파일(standalone-ha.xml), nohup(백그라운드 실행), 로그 생성
nohup $JBOSS_HOME/bin/standalone.sh -DSERVER=$SERVER_NAME -P=$DOMAIN_BASE/$SERVER_NAME/bin/env.properties-c $CONFIG_FILE >> $LOG_HOME/nohup/${SERVER_NAME}_${DATE}.out &
# 버퍼에 있는 값과 동일하면
if [ e$1 = "enotail" ]; then
echo "Starting... $SERVER_NAME"
exit;
fi
# server.log 마지막 내용 출력
tail -f $LOG_HOME/server.log
else
echo -e "\nNo Search Node Name : ${ID}"
echo -e "Node List : $(ls -F $JOBSS_DIR | grep / | cut -d/ -f1 | grep -v -e '^$' | tr "\n" "\t")\n"
echo -e "Return script after node name resolution\n"
exit;
fi
fi
|
cs |
2. jboss_stop.sh : 종료 스크립트 |
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 46 47 48 49 50 51 52 53 54 55 56 57 58 | #!/bin/sh JBOSS_DIR=/CLOUD/JBOSS/domains # 노드가 1개일 경우 # 노드가 있으면 if [ `ls -F $JBOSS_DIR | grep / | wc -l` -eq 1 ]; then # 노드 리스트 저장 node_list=`ls -F $JBOSS_DIR | grep / | cut -d/ -f1` # 날짜, 시간 저장 DATE=`date +%Y%m%d%H%M%S` # jboss 환경 설정 스크립트(env.sh) 실행 . ${JBOSS_DIR}${node_list}/bin/env.sh # 노드의 PID를 찾아 kill -9 PID 수행 ps -ef | grep java | grep "${SERVER_NAME}" | awk {'print "kill -9 " $2'} | sh -x # 노드가 2개 이상일 경우 else echo -e "\nInput JBoss Node Name." # 노드 리스트 한줄로 출력(탭으로 구분) echo -e "Node List : $(ls -F $JBOSS_DIR | grep / | cut -d/ -f1 | grep -v -e '^$' | tr "\n" "\t")\n" # 노드명 입력 받기 read -p "[ JBoss Node Name ] : " ID # 입력 받은 노드명 저장 JBOSS_NODE=$JBOSS_DIR/${ID} # 입력 값이 없을 경우 노드 리스트 다시 출력(탭으로 구분) if [[ $ID == "" ]]; then echo -e "\nSpace or Enter is not allowed..." echo -e "Node List : $(ls -F $JBOSS_DIR | grep / | cut -d/ -f1 | grep -v -e '^$' | tr "\n" "\t")\n" echo -e "Return script after node name resolution\n" exit; # 입력 노드가 있으면 elif [ -d $JBOSS_NODE ]; then # jboss 환경 설정 스크립트(env.sh) 실행 . ${JBOSS_NODE}/bin/env.sh # 노드의 PID를 찾아 kill -9 PID 수행 ps -ef | grep java | grep "${SERVER_NAME}" | awk {'print "kill -9 " $2'} | sh -x # 입력한 노드가 없을 경우 메시지 출력 후 노드 리스트 다시 출력(탭으로 구분) else echo -e "\nNo Search Node Name : ${ID}" echo -e "Node List : $(ls -F $JBOSS_DIR | grep / | cut -d -f1 | grep -v -e '^$' | tr "\n" "\t")\n" echo -e "Return script after node name resolution\n" exit; fi fi | cs |
반응형
'IT 이야기 > Script' 카테고리의 다른 글
CUBRID 스크립트로 배우는 스크립트 (0) | 2020.05.28 |
---|---|
[Script] History 스크립트로 배우는 스크립트 (0) | 2020.05.04 |
Apache 스크립트로 배우는 스크립트 (0) | 2020.03.11 |
댓글