|
|
8 P) Q* @7 G& T
自动部署shell脚本由4个方法组成: deploy_backup(版本备份)、deploy_unzip(自动解压新版本)、deploy_restart(重启tomcat)、deploy_Rollback(版本回滚),当然,每个方法可以独立执行,此处在开始运行脚本时给出了2个选择,0:版本回滚,其他任意输入会自动部署新的版本包并重启tomcat。shell脚本代码如下:; D" _6 G4 n" ]5 T U
# ?, W3 X2 H% O, U' m+ l) H
#!/bin/bash3 a0 K9 f5 B; v; N6 o
deploy installation script By clinva 2015.08.28- d+ ~9 w: _7 F) f5 k* ^# z9 _
4 M" n' N$ }- w0 `
+ G1 T! @8 _2 k# P& b) j#版本部署路径
% W0 h9 o. a" D" dmainpath=/home/emalls1/qdone/pcv2
2 ]) j `( B8 m6 }0 g' ]2 ~5 V _* ?1 Y* k% N( Q, a! n2 ~) m: k* Y
" R: W; z4 q" L$ `! r0 s0 J6 K3 G& \
#备份版本包
+ g3 z* w$ `! Ndeploy_backup()$ z, \; O& g+ z x7 [- s
{3 J1 H4 `+ D$ J+ P1 t
cd ${mainpath}/tomcat8/webapps/;
0 v# y5 ^2 t, C5 P9 U$ J- y0 Gtar -zcvf epc_`date +%y%m%d%H%M%S`.tar.gz epc;. m. Y% n! }1 p3 i# ? | D
sleep 3! K8 d+ i& }5 w( N9 K3 i
ls;
* ~1 F3 W% i- ~$ m# b$ }mv *.tar.gz ${mainpath}/backup/;4 J9 \* k, n0 V1 Y2 e3 s6 R/ w" K3 M: Y
}' a% k! x6 d# X% {3 p
# Z" i+ {+ P% R! P6 b
2 D% W& ~1 s+ L& f; H; ]2 i2 R
#解压版本包
! F0 k, T# _/ T. F3 cdeploy_unzip()$ m5 r) p6 r: }% h5 n
{3 J$ V3 N* P3 S4 k
cd ${mainpath};
O1 s7 t! \0 A3 T, G) c# [! kls;
7 ?5 S2 ]5 O& c9 G, O* k/ _& ]sleep 3;
/ O3 w8 S. t( G( X+ g$ `* u# T#unzip -l *.zip;% p+ T5 J$ L$ i3 q
unzip -o -d ./tomcat8/webapps/epc pc.zip;9 @- O3 T8 W" f
sleep 3;
/ D5 L( K- m: s/ z" ^* `3 p; K* ?# O9 W}
{% \2 B( H- ~3 a- F' _. g3 x) Z) J+ a0 V2 H
#重启tomcat
$ S: _# h% ^: g; D% V& zdeploy_restart()
: d: U+ T* j* N. O3 f{
5 B% p7 l+ \5 r9 d" \cd ${mainpath}/tomcat8/bin;8 _" s8 _3 |+ g1 o
pid1=`ps -ef|grep emalls1 |grep pcv2 |grep tomcat8 |grep qdone |awk '{print $2}'`, a( g+ z8 E$ x% x0 g& a
echo $pid16 G& `# G6 g. ]- l' [
if [ -z $pid1 ]; then; l; a! e8 x, \3 E" k
echo "not exist"( R7 ^! `. C% ]
./startup.sh;9 Z3 k( F$ ~+ {$ x7 h3 M8 ]
tailf ./../logs/catalina.out4 d, n0 p" c' D ?; w, r8 C v
exit 1
9 P- ], b$ O& |. X8 Eelse, {; C+ X4 }/ v$ a/ O/ X
echo "restarting tomcat1"; _# M) u/ z4 x8 \* q( Z: a' `
kill -9 $pid1* R" j' M$ j: D7 h& i. G
sleep 5
. G" h) v9 T* \9 x; f$ @$ r8 Q( g ./startup.sh;6 m- @" l0 I" G7 R& g0 `
tailf ./../logs/catalina.out
( q& b6 h5 W% R0 h+ T: |fi
# E! k' u, i7 `& `5 x0 G3 s}) B9 o/ ` E- C! }
# j; ?. {; ^" ~! z* Q: B8 s
' n5 l! [7 o* F9 k2 Q4 g j#版本回滚
6 l* f0 s# H+ l T( W" ]deploy_Rollback()+ `7 a9 n4 `* F6 m: t q8 d
{
5 s9 s) A- s( z) a9 n#进入备份文件夹
: F# s- p5 S& F& V, k" j5 u2 l% k: F cd ${mainpath}/backup/0 E2 _ V$ j+ C4 H# m% y
#获取最新备份文件8 s$ A* L7 i' ]& \; o" l9 u" U
file_name_new=''
- g9 d% t1 a" F9 \0 c8 s% s, n6 x for i in `ls -tr`;# k( v. l. O3 c
do: i: l3 f; h2 y1 W4 T- e
echo $i;
9 g7 c! m L9 _+ X2 ^ file_name_new=$i;) \% b5 U- ]% |# u1 n* j3 q
done;
( R E5 K& Y) W+ x1 V8 `5 E #将备份文件复制到webapps
' |. d) E7 r8 k cp ${mainpath}/backup/${file_name_new} ${mainpath}/tomcat8/webapps6 |7 A9 K& K4 j! z f
if [ $? -eq 0 ]% c, ~( b6 _% P' H* l/ n* F
then! k. k8 O: ?5 f, j4 A! T
echo 复制${file_name_new}成功: a9 V% j' N ]! ?* `
else2 T& c+ l9 }# e+ `. Q. u: o
echo 复制失败,退出!' D0 I3 `7 C3 b6 n8 a' Y
exit 19 W) F0 B0 E9 |9 D/ g) P$ y" T; e# f2 P
fi
3 _, k t0 |5 k7 f% R" d3 b$ J1 u #进入webapps/目录 j) X' }$ ~+ C8 S5 N, _
cd ${mainpath}/tomcat8/webapps3 h/ E$ I" N: Q9 {- A
#解压文件
! i' K3 o' N3 T9 \$ c echo 正在解压,请稍后...& _. D2 {% u" z' [8 Q6 d7 v
tar -zxvf ${file_name_new}$ q9 W- s/ g2 m! o8 m) X
#重启tomcat
; [$ }1 Q( U% j7 C6 L; _# P" ? c& U deploy_restart
) b4 H4 i9 \; V7 w}
3 N# G4 B1 ?* N$ n
8 v3 w6 a/ I) m m- Z9 c" ^- L+ F4 ~3 O! F
echo --------欢迎使用shell自动部署脚本--------
) S) g* r8 w6 xecho -e "请输入对应的操作编号:\n0.版本包回滚;\n其他键.一件部署;"
0 Z" ^( S$ b8 p4 G; c& M#获取用户操作8 Z5 S$ V" R* v) s
read wm21 ]' m/ h) H% h( W2 u Y
case $wm2 in( C9 G R! d6 g9 o- \: p" c
0)
9 l$ C( F6 L @0 d* p" ^: x deploy_Rollback; w. n4 Y+ Z) f% k; J
;;
* v7 k+ a7 [+ {) v) ?% A*)
$ U0 c& e3 M8 c* w. N' I deploy_backup
7 F$ c. t) K3 s- h7 L# W9 ?. O Y" y deploy_unzip7 |" l: ~. W5 w, ~& k* P
deploy_restart- {8 D N8 _ {. f6 \
;;
+ L/ P* P6 F; b) H" S$ }. r+ wesac
* j# Y& H, j: b
5 T* v5 G+ s& ^9 G, }9 P* A
8 p$ z: z# R5 m3 F) J |
|