- 积分
- 16843
在线时间 小时
最后登录1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
M' |8 c, g% R+ p* ]+ W5 N4 g 自动部署shell脚本由4个方法组成: deploy_backup(版本备份)、deploy_unzip(自动解压新版本)、deploy_restart(重启tomcat)、deploy_Rollback(版本回滚),当然,每个方法可以独立执行,此处在开始运行脚本时给出了2个选择,0:版本回滚,其他任意输入会自动部署新的版本包并重启tomcat。shell脚本代码如下:
. J- `0 O* n* U( e* m ^3 t* D0 |& c8 u3 E
#!/bin/bash" f5 o6 i1 k/ M: R
deploy installation script By clinva 2015.08.28" Q* W3 G5 t8 i5 K* Z
7 G( b9 C) h8 Q8 J
9 }- E1 O+ \6 O" y9 O9 N9 B#版本部署路径5 f+ W; F3 v* u! y0 T) k8 j
mainpath=/home/emalls1/qdone/pcv2
0 n$ L& Z- V! z- Y6 S
3 ?2 j) B+ z- X6 v u' Z* J* V8 e( f* _, h- `$ \) l/ E
6 j0 w# i$ C, c" Z+ y
#备份版本包
7 w- ? I) y5 d6 ]& Pdeploy_backup()
! M, F, F0 }, Z. ]{% t& o! V! E& Z
cd ${mainpath}/tomcat8/webapps/;
1 c0 B/ T5 [4 ?& C9 ?9 q* Ttar -zcvf epc_`date +%y%m%d%H%M%S`.tar.gz epc;: {+ g. ^) Z. M) j- W! B6 c. g. E
sleep 3& t" L; g& @, ]
ls;
* |: a, B4 H3 I3 J+ t1 s5 B5 Ymv *.tar.gz ${mainpath}/backup/;! B/ c. W4 t0 P* _
}/ ~7 h( q2 y5 @7 _# Z. p, W
/ ^) z8 G: V3 x- U
2 z4 t8 ^" Y* {# b" Y5 u#解压版本包
, y' e) K: s" ?deploy_unzip()
! n/ s7 s @8 C{5 C0 W" z) t0 I: i
cd ${mainpath};: D7 y* U5 i8 q! i4 t3 u. ~/ x& o7 ~
ls;
~, r: p5 d$ s4 K0 P7 k- Tsleep 3;8 g# ?6 [- i0 S& f- R" a! ]( V
#unzip -l *.zip;
& H/ \" v) t, w) S9 \unzip -o -d ./tomcat8/webapps/epc pc.zip;. U4 ?) l9 P; i# q# ~
sleep 3;8 @% y* d4 x0 P7 B) Q3 K) B$ M
}
% ~( x6 I# c. [7 B; \. w u4 |# [ n# v# g
#重启tomcat1 N# ~. y5 @! T/ @* W1 m) ~
deploy_restart()
/ d O0 l N5 @% k5 A{
+ S/ V2 T, |4 {& P. gcd ${mainpath}/tomcat8/bin;; w7 z4 I; S& g$ e8 I) l
pid1=`ps -ef|grep emalls1 |grep pcv2 |grep tomcat8 |grep qdone |awk '{print $2}'`
& z) p2 w: M+ ]1 o8 Q: Iecho $pid1
" ?$ k% u" G. j/ d1 u. Dif [ -z $pid1 ]; then* u$ {9 B/ Y- {- o' _+ V5 J
echo "not exist"
! _* T; Z% x$ a) w9 L# I& ?7 X ./startup.sh;
4 x& [4 y# n! B/ _1 p% g9 Z+ R2 `& z tailf ./../logs/catalina.out C5 r+ C% J3 l4 F) ^% ?
exit 12 {4 N/ z7 |/ F, H; i- X
else
; L5 }9 C. O# I echo "restarting tomcat1"/ J" |! V; x v
kill -9 $pid1; M4 @+ z6 s3 W9 m3 ?5 _
sleep 5: Y [# e) C- l# [
./startup.sh;& B5 ~, p7 c' I: y( l7 G
tailf ./../logs/catalina.out. m |& Y+ |0 a
fi
8 i2 l" b# W Z5 R0 A) j5 S}: B& X1 P7 H5 n
" W/ d, r z+ O v
& k" H& q% X. C, |) s7 t+ B! D& s4 T
#版本回滚
. f8 `7 {) v2 B. u! b d$ ]deploy_Rollback()
( x0 F6 @2 E& [3 c{% n& g+ a% k+ \
#进入备份文件夹
]: ~: Y" h4 G4 N. q+ u% q' L cd ${mainpath}/backup/
1 \- I/ w; `; D% _/ Q8 ~ #获取最新备份文件% H# h% a# T$ `3 [+ v
file_name_new=''
. T$ F7 h& l1 ], b for i in `ls -tr`;; a$ x6 z2 K3 S
do: H: G# w% @. I
echo $i;
; E; @0 ?- Q2 t+ m& u% u$ |1 l$ P& D- Z file_name_new=$i;" L* O) r( _% n4 l) Y$ f1 u
done;5 B" c6 ^. C! Z7 y% n/ I! r% @
#将备份文件复制到webapps% H @- E6 T1 r2 q* }6 d6 P
cp ${mainpath}/backup/${file_name_new} ${mainpath}/tomcat8/webapps9 C( t1 j7 x$ u
if [ $? -eq 0 ]9 V' l. T2 B( P. L* a, g0 h6 M
then& z' V; M+ S, H/ g2 z/ I
echo 复制${file_name_new}成功
( d; F( |. L0 C; z; K& w' ] else
$ `, N5 Z; Q; b5 Z0 Y/ f echo 复制失败,退出!, l9 L! M/ @9 q1 g. V' g
exit 1
" K7 }, I4 R% | x4 C fi
' e7 }+ U& F9 R6 O: _1 C #进入webapps/目录! O5 Q/ M' C' f# [6 n, {
cd ${mainpath}/tomcat8/webapps5 K& Q7 d# p. n* C
#解压文件0 ?5 ~0 J4 V( Q" z! m$ A
echo 正在解压,请稍后..., u* {; V; R4 n8 W( R! m
tar -zxvf ${file_name_new}& w- y8 C: o0 \1 A
#重启tomcat
5 ?5 Z- j2 q- Q, B deploy_restart6 J& s2 }9 g5 V. o1 P
}
0 F; q+ b- l# ?: L: h# T% I; N1 V5 C5 }1 H; o r0 g% H
; q0 `7 {1 ]- f) Secho --------欢迎使用shell自动部署脚本--------# D! [4 K7 a E \6 T& W
echo -e "请输入对应的操作编号:\n0.版本包回滚;\n其他键.一件部署;"
) _) V: o( x( H6 O8 F& D#获取用户操作
3 z/ [7 j3 _" P$ S- z% D( K1 oread wm2
5 Z: ?: x. h8 p; Kcase $wm2 in
+ F! C* B S3 [& t; c0)
. ]1 i) ~6 Z8 V) ~- X) A deploy_Rollback' l: L; ?1 J7 y2 W5 i1 o1 n0 O
;;( j% F2 x" g3 A4 e0 L/ \! y# h. ?
*): u' E$ @2 i7 m7 q' M2 n7 p
deploy_backup- |, {8 d/ v7 t* a& I7 `3 R c4 F
deploy_unzip. b' _$ p; ?0 @ i2 Q- R" L% G
deploy_restart( ^( ]/ X& Y* p" u9 ]- }4 ]( j
;;
! O" U* d) g; K! j0 lesac0 f6 p; g `0 s3 ~/ O H' N6 d
* t! }" L9 p1 V. ?8 [, F
2 N# i6 a$ z- |* X6 d. K |
|