-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupdate_tomcat.sh
133 lines (123 loc) · 3.23 KB
/
update_tomcat.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
122
123
124
125
126
127
128
129
130
131
132
#!/bin/bash
#config the java home
JAVA_HOME="/home/opt/tools/jdk"
CLASS_PATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib"
PATH=".:$PATH:$JAVA_HOME/bin"
export JAVA_HOME
DATE=`date +'%Y%m%d%H%M'`
NUM=`ps aux |grep java |grep -v grep |wc -l`
YN=project.war
PROJECTNAME=project
BASEPATH=/home/opt/tools/tomcat/webapps/
HOMEPATH=/home/opt/tools/tomcat/
BAKPATH=/home/opt/databackup/
#backup the project
if [ ! -d $BAKPATH ];then
mkdir -p $BAKPATH
fi
if [ -f $BASEPATH/$YN ];then
cp -f $BASEPATH/$YN $BAKPATH/$YN.bak$DATE
fi
if [ -d $BASEPATH/$PROJECTNAME ];then
cp -rf $BASEPATH/$PROJECTNAME $BAKPATH/$PROJECTNAME.bak$DATE
fi
#更新war包,将包含war包的压缩文件解压到/tmp目录下,然后运行./update_tomcate.sh war进行更新操作
function update_war ()
{
cd /tmp && tar zxvf $PROJECTNAME.tar.gz
if [ $NUM != 0 ];then
$HOMEPATH/bin/shutdown.sh
sleep 5
PID=`ps aux |grep java |grep -v grep |awk '{print $2}'`
NUM_new=`ps aux |grep java |grep -v grep |wc -l`
if [ $NUM_new == 0 ];then
echo -e "mjava is shutdown..."
rm -f $BASEPATH/$YN
rm -rf $BASEPATH/$PROJECTNAME
cp /tmp/$YN $BASEPATH/
$HOMEPATH/bin/startup.sh
sleep 5
else
echo -e "java is not shutdown,java will kill by -9"
kill -9 $PID
rm -f $BASEPATH/$YN
rm -rf $BASEPATH/$PROJECTNAME
cp /tmp/$YN $BASEPATH/
$HOMEPATH/bin/startup.sh
fi
echo -e "update is complate..."
rm -rf /tmp/$YN
rm -rf /tmp/$PROJECTNAME
rm -rf /tmp/$PROJECTNAME.tar.gz
else
echo -e "java is not runing,please check....."
fi
}
#更新补丁包,将包含更新的压缩文件解压到/tmp目录下,然后运行./update_tomcate.sh patch进行更新操作
function update_patch ()
{
cd /tmp && tar zxvf $PROJECTNAME.tar.gz
if [ $NUM != 0 ];then
$HOMEPATH/bin/shutdown.sh
sleep 5
PID=`ps aux |grep java |grep -v grep |awk '{print $2}'`
NUM_new=`ps aux |grep java |grep -v grep |wc -l`
if [ $NUM_new == 0 ];then
echo -e "mjava is shutdown..."
cp -rf /tmp/$PROJECTNAME $BASEPATH/
$HOMEPATH/bin/startup.sh
sleep 5
else
echo -e "mjava is not shutdown,java will kill by -9"
kill -9 $PID
cp -rf /tmp/$PROJECTNAME $BASEPATH/
$HOMEPATH/bin/startup.sh
fi
echo -e "mupdate is complate..."
rm -rf /tmp/$YN
rm -rf /tmp/$PROJECTNAME
rm -rf /tmp/$PROJECTNAME.tar.gz
else
echo -e "mjava is not runing,please check....."
fi
}
#read -p "Please input your choice(war|patch):" num
function start_tomcat()
{
PID=`ps aux |grep java |grep -v grep |awk '{print $2}'`
NUM_new=`ps aux |grep java |grep -v grep |wc -l`
if [ $NUM_new == 0 ];then
$HOMEPATH/bin/startup.sh
fi
}
function stop_tomcat()
{
NUM=`ps aux |grep java |grep -v grep |wc -l`
if [ $NUM != 0 ];then
$HOMEPATH/bin/shutdown.sh
sleep 10
PID=`ps aux |grep java |grep -v grep |awk '{print $2}'`
NUM_new=`ps aux |grep java |grep -v grep |wc -l`
if [ $NUM_new != 0 ];then
kill -9 $PID
fi
fi
}
case $1 in
"war")
update_war
;;
"patch")
update_patch
;;
"start")
start_tomcat
;;
"stop")
stop_tomcat
;;
*)
echo "Usage: $0 {war|patch|start|stop}"
exit 1
;;
esac