- 积分
- 16843
在线时间 小时
最后登录1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?开始注册
x
n1 S: m; d$ p5 [" p7 Y
自动部署shell脚本由4个方法组成: deploy_backup(版本备份)、deploy_unzip(自动解压新版本)、deploy_restart(重启tomcat)、deploy_Rollback(版本回滚),当然,每个方法可以独立执行,此处在开始运行脚本时给出了2个选择,0:版本回滚,其他任意输入会自动部署新的版本包并重启tomcat。shell脚本代码如下:
h7 V4 B' d2 ^. M+ }6 u1 q6 a: M+ S! k8 K( S6 F
#!/bin/bash$ a' i1 I, h) N1 m/ m% ?
deploy installation script By clinva 2015.08.28 E" |6 c) ^* t E* g1 @
5 p/ i) T& h0 b, }6 A
]! |$ }# ^) I* e) q
#版本部署路径
* O1 ` ]# a+ b( r" o3 ?4 dmainpath=/home/emalls1/qdone/pcv2# W; B# q5 W' E6 z6 P
4 p3 q+ J7 R% T; \# O3 S% F5 P; P9 {% E: ]/ ^
5 N' L5 N- z" b3 h! ?
#备份版本包
4 t5 B7 P4 K6 Z4 _ ?; edeploy_backup()/ b- Z( P6 z8 F/ s/ I7 s
{) g4 F9 g# J. I" Y Y% G
cd ${mainpath}/tomcat8/webapps/;; a4 @4 W1 m$ ~- k1 j" ?( p6 L
tar -zcvf epc_`date +%y%m%d%H%M%S`.tar.gz epc;/ p: Z( w1 e$ e, M/ Q* B: z% W
sleep 3
9 q( H2 G) J1 a4 U+ ~ls;
" j0 }! @9 A3 H5 R n( I0 smv *.tar.gz ${mainpath}/backup/;
- S6 o/ _# D( F4 {, D}: m( q# R1 C5 h8 ]
. D- t$ f5 S) l: X" Y& h( Q& {% M
# ~8 g& o1 N% l3 M5 Y#解压版本包% Y, j/ b3 C2 u0 U% I9 V! @
deploy_unzip()4 m( Q3 \ G" l. t0 I
{
# z0 U( ?, Y7 icd ${mainpath};
( u% q0 @" I1 q" a# nls;( U0 o$ i2 C. B# A6 z% F2 [! m8 {
sleep 3;
! Y7 V- t- t4 r7 N. \#unzip -l *.zip;+ n: |- q; z; p, `
unzip -o -d ./tomcat8/webapps/epc pc.zip;
0 e" @, E3 y# x: K4 E1 J# vsleep 3;
3 J" b8 i! f+ o" b1 s}% e2 Q# v+ u7 m& J4 P
# |9 D' D# b! T#重启tomcat
+ d" ~/ y# H& `" G7 E' Udeploy_restart()# x+ z7 B! i5 o. v- x8 ]7 ~; D. a! W
{
& P/ m- {0 D) y& wcd ${mainpath}/tomcat8/bin;5 X [5 Z5 g; B7 p' f. V6 E3 p
pid1=`ps -ef|grep emalls1 |grep pcv2 |grep tomcat8 |grep qdone |awk '{print $2}'`/ j: B4 C' F# q9 Q5 i, r4 I) Z
echo $pid15 q' r, f3 X2 x0 v. {+ x
if [ -z $pid1 ]; then7 Z2 R7 m; V* m2 u& z+ ^1 c
echo "not exist"
1 c8 c2 F, M! H4 ?7 Q; | ./startup.sh;
3 x" ]! a# g. T8 {+ s* B8 {' w7 u tailf ./../logs/catalina.out
, ~: l. n) I' o3 P5 P exit 1
5 J( {$ H: U8 uelse
2 O, K, c6 A+ E8 }4 W: U0 ~ echo "restarting tomcat1"
* P& y/ V7 k5 `6 \' J- R( L kill -9 $pid1
) J6 ]0 `9 e2 W1 S+ j sleep 5
- B/ j X( V) H, v ./startup.sh;
. _+ h8 u6 y6 |: _: i tailf ./../logs/catalina.out
$ q. \: |0 P1 l: Q6 i ufi
% e3 Z7 b2 g: j6 W}
0 q( i& j# Z! _; k! F5 ^1 d
' U: ~8 ]% E, b6 p) h4 o8 Q3 S5 e
#版本回滚
8 ~7 |1 U( Q0 mdeploy_Rollback(). P, K: R: J; K+ o; Y0 u
{/ ?& Q% M: q* P# U
#进入备份文件夹) N( `! r# U0 Y i, }6 W; v
cd ${mainpath}/backup/& e5 [& F, P1 ~+ k( ~3 o$ o
#获取最新备份文件7 v. W" k( c, j. s: e
file_name_new=''
. G9 Z* c/ e+ G2 _5 @" O5 s4 ~( i for i in `ls -tr`;
8 Z$ }: j' u% K! t' f do7 h& s; t0 V+ {
echo $i;* C* T) a) F' [" a R& o3 k9 C0 {
file_name_new=$i;
8 B1 W( j! g& ]: f+ b done;
0 h9 `, _" ?- ]) Q5 @) _6 G #将备份文件复制到webapps
# N5 I$ \' Q- {2 a! y$ G# n/ H cp ${mainpath}/backup/${file_name_new} ${mainpath}/tomcat8/webapps
' [/ j V7 p1 l! }: X4 b if [ $? -eq 0 ]
! W9 z! o ~; X, O$ k* ] then
) B4 x1 O @9 \! A- j: j echo 复制${file_name_new}成功
! o6 S0 V0 K& e' _. S7 a else n! X t W% S1 W) y9 A" j
echo 复制失败,退出!
_4 y( A' ~0 [. o+ S+ z exit 1
9 d( |4 U, X$ a' f& u! R9 U fi
8 }9 N$ f& t" d3 Y. Q! P1 U+ @ #进入webapps/目录
' b8 o9 g/ C0 R8 S" S7 E! \ cd ${mainpath}/tomcat8/webapps
* ^1 l6 ~' i3 y' W4 y- l7 q0 e$ @, ~ #解压文件
6 |, k: v% _' [1 D3 S+ q/ y9 w- u echo 正在解压,请稍后...9 O- y/ t; S' Q( y# X0 i1 P
tar -zxvf ${file_name_new}
3 K0 k/ m; V" R1 x #重启tomcat
1 X* M5 v3 p9 ?# h$ G" j* ~ deploy_restart
; Q9 c2 J. O, c}
" }$ F r2 O- D
, b& x9 q/ g4 G( l& C9 @0 B Y M S$ U3 X: h3 t+ j
echo --------欢迎使用shell自动部署脚本--------
( T" @. Z$ U, {. e, Wecho -e "请输入对应的操作编号:\n0.版本包回滚;\n其他键.一件部署;"- P6 ~6 z. C) i# e; k
#获取用户操作
, s4 f" w9 d9 y9 X2 Gread wm2
4 q1 ?2 I& J* E2 X9 J9 l+ Lcase $wm2 in
* Q1 B$ A+ W# K f+ F0)
+ P" M8 h7 I% L5 S. {2 Y$ |( y8 e deploy_Rollback
5 I; ]7 N/ x) C/ ~/ \ M3 q ;;
7 W5 i( e0 B w- W" H*)
$ a/ k; c! a" |& \, d& J$ o$ f deploy_backup# h( b% @2 v: Y* p, r$ j
deploy_unzip
- E+ d* n* `+ s: Y8 j# t. { deploy_restart" T* @2 M6 \3 W9 ? n1 @. T
;;, i5 ~# R8 I: q
esac
' c( C# x% F1 v; b% h/ X3 |: h' u2 E7 Z% `5 T6 V5 }0 L0 J2 z; I& l
1 P* n h5 L" N+ V8 H( v |
|