|
|
! M( c- n$ u* p0 W% x 自动部署shell脚本由4个方法组成: deploy_backup(版本备份)、deploy_unzip(自动解压新版本)、deploy_restart(重启tomcat)、deploy_Rollback(版本回滚),当然,每个方法可以独立执行,此处在开始运行脚本时给出了2个选择,0:版本回滚,其他任意输入会自动部署新的版本包并重启tomcat。shell脚本代码如下:
7 x! u$ u! @# X7 x( G; ?9 M7 w
4 J! X8 s3 Y, \#!/bin/bash
3 `& t/ o7 k& Y# I bdeploy installation script By clinva 2015.08.28
. e& L1 C" n) v
- t$ ~. f4 v" I. ~
$ g7 u7 x4 q, l, u! z! s. f#版本部署路径; ~* L* F: H$ t4 k T
mainpath=/home/emalls1/qdone/pcv2. v! m$ Y3 ~. r$ m; y
, W6 }/ b7 l* f4 K0 G* ~( @
* }$ @# r# \/ y! B( m' A% ^$ O
#备份版本包0 ~; a. R0 e, G! U5 \5 [9 [
deploy_backup(): q: g2 M9 T! h/ w: e+ H
{8 M; h# y; n' h( W- l# `
cd ${mainpath}/tomcat8/webapps/;! H) E. c0 F% }& R1 j# @
tar -zcvf epc_`date +%y%m%d%H%M%S`.tar.gz epc;
! W& o2 r( @4 J1 J) r0 v7 ssleep 34 s+ c. h- G$ |- Z5 h# k% i; j/ J
ls;- o1 |5 G/ c4 ?) |
mv *.tar.gz ${mainpath}/backup/;
" U" X( R3 @; z& b% c2 b}' g+ ~: G! {+ J
& r' R+ r4 U) N. A
& b9 X- h1 q$ X' ]- _5 [, z#解压版本包
( h6 E8 {7 u( X! Tdeploy_unzip()
& K! H4 S( d- R, U{2 j8 d! F* {' A1 |& N
cd ${mainpath};8 K4 B) S( I- C6 \0 k2 \: a8 g: h
ls;1 m$ x- L9 o8 }* l& Q1 |2 K5 P7 @
sleep 3;4 ?$ G" }/ S! P) f7 ]* @
#unzip -l *.zip;' V Y, Z' D2 ^" u6 j; S0 o
unzip -o -d ./tomcat8/webapps/epc pc.zip;5 n0 O5 u. e, s u+ }
sleep 3;: q* h' ^ [5 w6 O
} g$ J6 H( V3 L" d* ~
2 D) q% {' g! S! u
#重启tomcat3 h& T" m2 ~2 h
deploy_restart()9 Y1 }4 Y2 D& `& p) w
{3 Q& Q* h8 f2 Z4 ~- j: U0 v
cd ${mainpath}/tomcat8/bin;! b+ g: W" n% T) Y
pid1=`ps -ef|grep emalls1 |grep pcv2 |grep tomcat8 |grep qdone |awk '{print $2}'`
& ]2 o& K, D8 h" J* s2 O; lecho $pid1
, ~6 X- ]5 r: N& S4 M. ?if [ -z $pid1 ]; then
! S* B$ {. D, z( s, K echo "not exist"0 s$ F; w- t6 h; U
./startup.sh;
1 F" e5 N) [# S4 h0 h tailf ./../logs/catalina.out
+ o: Y6 |1 P8 V, o exit 1
, M8 U! t( @, }& |0 velse
2 K, c( _( F5 r5 k/ c8 k echo "restarting tomcat1"1 Y; L7 t n% }+ \5 g
kill -9 $pid1
. |5 R; h+ a' J, B sleep 5
' K/ a, |; q' W/ l! y* M ./startup.sh;4 T, N, G( r7 S5 b
tailf ./../logs/catalina.out
* D) T2 d# S$ Z1 y, s9 S8 `fi B6 t; t; S6 w5 w& I
}8 W0 f, |3 J3 x. O0 X4 a
1 u6 _, w6 I+ u) c( z4 p
3 m$ P* `- R+ ~6 t9 K, \6 `! n#版本回滚- A+ a, v7 p% X3 z9 j. z
deploy_Rollback(); t( G, a. v& `" j! E0 F
{
) p& j/ ]% Y9 |! P5 k6 {% v#进入备份文件夹
- ^4 N1 e$ Q# w: F3 e3 Q cd ${mainpath}/backup/
. h4 g$ l* t, A' J; G' ] #获取最新备份文件; Q$ L: F- V# W" K# z# D
file_name_new=''9 W% ?; d I5 P
for i in `ls -tr`;4 T2 `( o, R, y# |6 I
do' e' @& L( \" q1 s; P0 ]$ _; A
echo $i;# [$ n. m3 D7 r O: h' V# o$ \# p' S
file_name_new=$i;
0 V( @8 L* k& C3 W! f$ q) c. _* n done;* O# j; G3 B: z7 W! h4 k
#将备份文件复制到webapps
# o. u7 F( d- F: {# `9 h7 L5 S cp ${mainpath}/backup/${file_name_new} ${mainpath}/tomcat8/webapps, x0 u4 a! x/ _9 W
if [ $? -eq 0 ]
X8 ?8 e: D# U9 e. s; l then# T$ k( t7 l# U& o I# W4 t& |4 o
echo 复制${file_name_new}成功+ ^/ q* V; A: p3 L' z+ W( J; @9 i
else
0 @2 K) ~6 Q0 A- F! f3 j, ^ echo 复制失败,退出!
6 {/ H: Y: M8 |" R1 T# s exit 15 }# t6 j: W5 J" ~
fi/ s- W+ [: P; x
#进入webapps/目录
4 ]0 ]$ t+ j: h8 |& N# P cd ${mainpath}/tomcat8/webapps
8 w3 f- H) G8 H5 q #解压文件
+ E- d. ~8 X: j0 y echo 正在解压,请稍后...
( b+ |* \" m9 |$ d4 I7 B tar -zxvf ${file_name_new}5 g6 Z; y4 ~1 ]: T
#重启tomcat4 t, Q$ f# c$ l, {& k, q, O p
deploy_restart
" H4 i3 H- k3 v# X& M/ e, P}1 [2 b! m) P }! r) @8 P9 S% T
/ m( D5 j8 u+ e' \8 m- ^
5 h; H4 f2 U0 u" W3 Aecho --------欢迎使用shell自动部署脚本--------+ e9 j! o$ ?- s
echo -e "请输入对应的操作编号:\n0.版本包回滚;\n其他键.一件部署;"2 P7 k/ e2 [+ ~$ x# V) t5 A
#获取用户操作* B9 x$ C% \* ]+ W
read wm2
1 [# ?. z% f& dcase $wm2 in' h% a! ?4 r( s
0)) L/ b4 Z" a1 ~, b0 g* ]( J+ D
deploy_Rollback
! a; R5 e+ X3 q* V ;;
" |7 H! }3 x8 u& ^6 E*)5 E/ y+ [4 `3 L; }& A) _
deploy_backup
- l5 B* d, @: M deploy_unzip
0 I% j" G% q; F deploy_restart& W# \ f. A4 h: f: t* K" d; h
;;
8 z7 \/ [/ k) E tesac
9 \" V: w- i3 _0 _1 S
7 Y# k) l1 {' M: T% F# w# t$ R4 ]# T( U' y2 l6 O! L9 I
|
|