tomcat怎么平滑更新项目_tomcat_deploy 平滑启动脚本
1 #!/bin/bash2 cat <
4 +-------------------------------------------------------------+
5 A)服務器192.168.1.1tomcat后臺更新6 B)服務器192.168.1.2tomcat后臺更新7 C)服務器192.168.1.3tomcat后臺更新8 D)三臺tomcat服務器無人值守后臺跟新9 +-------------------------------------------------------------+
10 ===---------------------------------------------------------===
11 MADAY12
13 export USER=root14 export PASSWD=Quanjing32115 #1.##################################### TOMCAT 8080SHUTDOWN and start script ########################################################16 functiontomcat1(){17
18 cat </root/tomcat_kill19 #!/bin/bash20 tomcat_8080_start=/export/servers/tomcat7-1/bin/startup.sh
21 tomcat_8080_dir=/export/servers/tomcat7-1/webapps22 tomcat_8080_port_check=\`netstat -anpt |grep LISTEN|grep :8080|wc -l\`23 tomcat_8080=\`netstat -anpt |grep LISTEN|grep :8080| awk '{print \$7}' |awk -F "/" '{print \$1}'\`24 tomcat_8080_shutdown_dir=/export/servers/tomcat7-1/bin/shutdown.sh
25 timedate=\`date +%Y%m%d%H%M\`26
27 tomcat_8081_start=/export/servers/tomcat7-2/bin/startup.sh
28 tomcat_8081_dir=/export/servers/tomcat7-2/webapps29 tomcat_8081_port_check=\`netstat -anpt |grep LISTEN|grep :8081|wc -l\`30 tomcat_8081=\`netstat -anpt |grep LISTEN|grep :8081| awk '{print \$7}' |awk -F "/" '{print \$1}'\`31 tomcat_8081_shutdown_dir=/export/servers/tomcat7-2/bin/shutdown.sh
32
33 tomcat_8082_start=/export/servers/tomcat7-3/bin/startup.sh
34 tomcat_8082_dir=/export/servers/tomcat7-3/webapps35 tomcat_8082_port_check=\`netstat -anpt |grep LISTEN|grep :8082|wc -l\`36 tomcat_8082=\`netstat -anpt |grep LISTEN|grep :8082| awk '{print \$7}' |awk -F "/" '{print \$1}'\`37 tomcat_8082_shutdown_dir=/export/servers/tomcat7-3/bin/shutdown.sh
38 #===========================================創建備份war包目錄 并且備份上一個版本===============================================
39
40 if [ -d /export/backup/api ]; then
41 cp /export/servers/tomcat7-3/webapps/ROOT.war /export/backup/api/api_\${timedate}.war42 else
43 mkdir -p /export/backup/api44 cp /export/servers/tomcat7-3/webapps/ROOT.war /export/backup/api/api_\${timedate}.war45 fi
46
47 #==========================================閉蓋nginx 連接不向后臺轉發==========================================================
48 wget -q -O - http://127.0.0.1:8080/health_check/set/1 > /dev/null
49 sleep 5
50 wget -q -O - http://127.0.0.1:8081/health_check/set/1 > /dev/null
51 sleep 5
52 #==========================================kill進程 啟動tomcat=================================================================
53 while true
54 Connect=\`netstat -anpt |grep :8080 |grep ESTABLISHED|wc -l\`55 do
56 if [ "\$Connect" -lt "1" ]; then
57 echo "當前服務器沒有ESTABLISHED連接停止tomcat";58 # [[ -n \$tomcat_8080 ]] && kill -9\$tomcat_808059 ps -elf |grep tomcat7-1|grep -v grep |awk '{print \$4}' |xargs kill -9
60 rm -rf \$tomcat_8080_dir/ROOT*
61 cp /root/api.war \$tomcat_8080_dir/ROOT.war62 sh\$tomcat_8080_start63 sleep 10
64 break65 else
66 echo "Exist process"
67 sleep 2
68 fi
69 done
70
71 while true
72 Connect=\`netstat -anpt |grep :8081 |grep ESTABLISHED|wc -l\`73 do
74 if [ "\$Connect" -lt "1" ]; then
75 echo "當前服務器沒有ESTABLISHED連接停止tomcat";76 # [[ -n \$tomcat_8081 ]] && kill -9\$tomcat_808177 ps -elf |grep tomcat7-2|grep -v grep |awk '{print \$4}' |xargs kill -9
78 rm -rf \$tomcat_8081_dir/ROOT*
79 cp /root/api.war \$tomcat_8081_dir/ROOT.war80 sh\$tomcat_8081_start81 sleep 10
82 break83 else
84 echo "Exist process"
85 sleep 2
86 fi
87 done
88 sleep 5
89
90 if [ "\$tomcat_8082_port_check" -eq "1" ]; then
91 ps -elf |grep tomcat7-3|grep -v grep |awk '{print \$4}' |xargs kill -9
92 rm -rf \$tomcat_8082_dir/ROOT*
93 cp /root/api.war \$tomcat_8082_dir/ROOT.war94 sh\$tomcat_8082_start95 elif [ "\$tomcat_8082_port_check" -eq "1" ];then
96 echo "tomcat 8082 啟動成功"
97 else
98 rm -rf \$tomcat_8082_dir/ROOT*
99 cp /root/api.war \$tomcat_8082_dir/ROOT.war100 sh\$tomcat_8082_start101 fi
102
103 #=========================================后臺啟動完成 開蓋nginx===============================================================
104 sleep 5
105 if [ \$tomcat_8080_port_check -eq 1 ];then
106 wget -q -O - http://127.0.0.1:8080/health_check/set/0 > /dev/null
107 echo "tomcat 8080端口啟動正常"
108 else
109 echo "tomcat 8080端口啟動失敗 請檢查后臺程序"
110 fi
111 sleep 5
112 if [ \$tomcat_8081_port_check -eq 1 ];then
113 wget -q -O - http://127.0.0.1:8081/health_check/set/0 > /dev/null
114 echo "tomcat 8081端口啟動正常"
115 else
116 echo "tomcat 8081端口啟動失敗 請檢查后臺程序"
117 fi
118 bbb119 #==================================================腳本發送執行==================================================
120 /usr/bin/expect <
122 spawn scp /root/tomcat_kill /export/shell/appdeploy/api.war root@192.168.1.1:/root/
123 expect {124 "(yes/no)?" {send "yes\r";exp_continue}125 "password:" {send "$PASSWD\r"}126 }127 interact128 expect eof129 EOF130
131 /usr/bin/expect <
133 spawn ssh root@192.168.1.1
134 expect {135 "(yes/no)?" {send "yes\r";exp_continue}136 "password:" {send "$PASSWD\r"}137 }138 expect -re "\](\$|#)"
139 send "sh -x /root/tomcat_kill \r"
140 expect -re "\](\$|#)"
141 send "rm -rf /root/tomcat_kill \r"
142 expect -re "\](\$|#)"
143 send "exit\r"
144 interact145 expect eof146 EOF147
148 }149
150
151 #2.###############################################tomcat 2start script###############################################152 functiontomcat2(){153
154 cat </root/tomcat_kill155 #!/bin/bash156 tomcat_8080_start=/export/servers/tomcat7-1/bin/startup.sh
157 tomcat_8080_dir=/export/servers/tomcat7-1/webapps158 tomcat_8080_port_check=\`netstat -anpt |grep LISTEN|grep :8080|wc -l\`159 tomcat_8080=\`netstat -anpt |grep LISTEN|grep :8080| awk '{print \$7}' |awk -F "/" '{print \$1}'\`160 tomcat_8080_shutdown_dir=/export/servers/tomcat7-1/bin/shutdown.sh
161 timedate=\`date +%Y%m%d%H%M\`162
163 tomcat_8081_start=/export/servers/tomcat7-2/bin/startup.sh
164 tomcat_8081_dir=/export/servers/tomcat7-2/webapps165 tomcat_8081_port_check=\`netstat -anpt |grep LISTEN|grep :8081|wc -l\`166 tomcat_8081=\`netstat -anpt |grep LISTEN|grep :8081| awk '{print \$7}' |awk -F "/" '{print \$1}'\`167 tomcat_8081_shutdown_dir=/export/servers/tomcat7-2/bin/shutdown.sh
168
169 tomcat_8082_start=/export/servers/tomcat7-3/bin/startup.sh
170 tomcat_8082_dir=/export/servers/tomcat7-3/webapps171 tomcat_8082_port_check=\`netstat -anpt |grep LISTEN|grep :8082|wc -l\`172 tomcat_8082=\`netstat -anpt |grep LISTEN|grep :8082| awk '{print \$7}' |awk -F "/" '{print \$1}'\`173 tomcat_8082_shutdown_dir=/export/servers/tomcat7-3/bin/shutdown.sh
174 #===========================================創建備份war包目錄 并且備份上一個版本===============================================
175
176 if [ -d /export/backup/api ]; then
177 cp /export/servers/tomcat7-3/webapps/ROOT.war /export/backup/api/api_\${timedate}.war178 else
179 mkdir -p /export/backup/api180 cp /export/servers/tomcat7-3/webapps/ROOT.war /export/backup/api/api_\${timedate}.war181 fi
182 #==========================================閉蓋nginx 連接不向后臺轉發==========================================================
183 wget -q -O - http://127.0.0.1:8080/health_check/set/1 > /dev/null
184 sleep 5
185 wget -q -O - http://127.0.0.1:8081/health_check/set/1 > /dev/null
186 sleep 5
187 wget -q -O - http://127.0.0.1:8082/health_check/set/1 > /dev/null
188 sleep 5
189 #==========================================kill進程 啟動tomcat=================================================================
190 while true
191 Connect=\`netstat -anpt |grep :8080 |grep ESTABLISHED|wc -l\`192 do
193 if [ "\$Connect" -lt "1" ]; then
194 echo "當前服務器沒有ESTABLISHED連接停止tomcat";195 # [[ -n \$tomcat_8080 ]] && kill -9\$tomcat_8080196 ps -elf |grep tomcat7-1|grep -v grep |awk '{print \$4}' |xargs kill -9
197 rm -rf \$tomcat_8080_dir/ROOT*
198 cp /root/api.war \$tomcat_8080_dir/ROOT.war199 sh\$tomcat_8080_start200 sleep 10
201 break202 else
203 echo "Exist process"
204 sleep 2
205 fi
206 done
207
208 while true
209 Connect=\`netstat -anpt |grep :8081 |grep ESTABLISHED|wc -l\`210 do
211 if [ "\$Connect" -lt "1" ]; then
212 echo "當前服務器沒有ESTABLISHED連接停止tomcat";213 # [[ -n \$tomcat_8081 ]] && kill -9\$tomcat_8081214 ps -elf |grep tomcat7-2|grep -v grep |awk '{print \$4}' |xargs kill -9
215 rm -rf \$tomcat_8081_dir/ROOT*
216 cp /root/api.war \$tomcat_8081_dir/ROOT.war217 sh\$tomcat_8081_start218 sleep 10
219 break220 else
221 echo "Exist process"
222 sleep 2
223 fi
224 done
225
226 while true
227 Connect=\`netstat -anpt |grep :8082 |grep ESTABLISHED|wc -l\`228 do
229 if [ "\$Connect" -lt "1" ]; then
230 echo "當前服務器沒有ESTABLISHED連接停止tomcat";231 # [[ -n \$tomcat_8082 ]] && kill -9\$tomcat_8082232 ps -elf |grep tomcat7-3|grep -v grep |awk '{print \$4}' |xargs kill -9
233 rm -rf \$tomcat_8082_dir/ROOT*
234 cp /root/api.war \$tomcat_8082_dir/ROOT.war235 sh\$tomcat_8082_start236 sleep 10
237 break238 else
239 echo "Exist process"
240 sleep 2
241 fi
242 done
243 #=========================================后臺啟動完成 開蓋nginx===============================================================
244 sleep 5
245 if [ \$tomcat_8080_port_check -eq 1 ];then
246 wget -q -O - http://127.0.0.1:8080/health_check/set/0 > /dev/null
247 echo "tomcat 8080端口啟動正常"
248 else
249 echo "tomcat 8080端口啟動失敗 請檢查后臺程序"
250 fi
251 sleep 5
252 if [ \$tomcat_8081_port_check -eq 1 ];then
253 wget -q -O - http://127.0.0.1:8081/health_check/set/0 > /dev/null
254 echo "tomcat 8081端口啟動正常"
255 else
256 echo "tomcat 8081端口啟動失敗 請檢查后臺程序"
257 fi
258 sleep 5
259 if [ \$tomcat_8082_port_check -eq 1 ];then
260 wget -q -O - http://127.0.0.1:8082/health_check/set/0 > /dev/null
261 echo "tomcat 8082端口啟動正常"
262 else
263 echo "tomcat 8082端口啟動失敗 請檢查后臺程序"
264 fi
265 bbb266 ################################################腳本發送執行###############################################267 /usr/bin/expect <
269 spawn scp /root/tomcat_kill /export/shell/appdeploy/api.war root@192.168.1.2:/root/
270 expect {271 "(yes/no)?" {send "yes\r";exp_continue}272 "password:" {send "$PASSWD\r"}273 }274 interact275 expect eof276 EOF277
278 /usr/bin/expect <
280 spawn ssh root@192.168.1.2
281 expect {282 "(yes/no)?" {send "yes\r";exp_continue}283 "password:" {send "$PASSWD\r"}284 }285 expect -re "\](\$|#)"
286 send "sh -x /root/tomcat_kill \r"
287 expect -re "\](\$|#)"
288 send "rm -rf /root/tomcat_kill \r"
289 expect -re "\](\$|#)"
290 send "exit\r"
291 interact292 expect eof293 exit294 EOF295 }296
297 #3.###############################################tomcat 3start script###############################################298 functiontomcat3(){299
300 cat </root/tomcat_kill301 #!/bin/bash302 tomcat_8080_start=/export/servers/tomcat7-1/bin/startup.sh
303 tomcat_8080_dir=/export/servers/tomcat7-1/webapps304 tomcat_8080_port_check=\`netstat -anpt |grep LISTEN|grep :8080|wc -l\`305 tomcat_8080=\`netstat -anpt |grep LISTEN|grep :8080| awk '{print \$7}' |awk -F "/" '{print \$1}'\`306 tomcat_8080_shutdown_dir=/export/servers/tomcat7-1/bin/shutdown.sh
307 timedate=\`date +%Y%m%d%H%M\`308
309 tomcat_8081_start=/export/servers/tomcat7-2/bin/startup.sh
310 tomcat_8081_dir=/export/servers/tomcat7-2/webapps311 tomcat_8081_port_check=\`netstat -anpt |grep LISTEN|grep :8081|wc -l\`312 tomcat_8081=\`netstat -anpt |grep LISTEN|grep :8081| awk '{print \$7}' |awk -F "/" '{print \$1}'\`313 tomcat_8081_shutdown_dir=/export/servers/tomcat7-2/bin/shutdown.sh
314
315 tomcat_8082_start=/export/servers/tomcat7-3/bin/startup.sh
316 tomcat_8082_dir=/export/servers/tomcat7-3/webapps317 tomcat_8082_port_check=\`netstat -anpt |grep LISTEN|grep :8082|wc -l\`318 tomcat_8082=\`netstat -anpt |grep LISTEN|grep :8082| awk '{print \$7}' |awk -F "/" '{print \$1}'\`319 tomcat_8082_shutdown_dir=/export/servers/tomcat7-3/bin/shutdown.sh
320 #===========================================創建備份war包目錄 并且備份上一個版本===============================================
321
322 if [ -d /export/backup/api ]; then
323 cp /export/servers/tomcat7-3/webapps/ROOT.war /export/backup/api/api_\${timedate}.war324 else
325 mkdir -p /export/backup/api326 cp /export/servers/tomcat7-3/webapps/ROOT.war /export/backup/api/api_\${timedate}.war327 fi
328
329 #==========================================閉蓋nginx 連接不向后臺轉發==========================================================
330 wget -q -O - http://127.0.0.1:8080/health_check/set/1 > /dev/null
331 sleep 5
332 wget -q -O - http://127.0.0.1:8081/health_check/set/1 > /dev/null
333 sleep 5
334 #==========================================kill進程 啟動tomcat=================================================================
335 while true
336 Connect=\`netstat -anpt |grep :8080 |grep ESTABLISHED|wc -l\`337 do
338 if [ "\$Connect" -lt "1" ]; then
339 echo "當前服務器沒有ESTABLISHED連接停止tomcat";340 # [[ -n \$tomcat_8080 ]] && kill -9\$tomcat_8080341 ps -elf |grep tomcat7-1|grep -v grep |awk '{print \$4}' |xargs kill -9
342 rm -rf \$tomcat_8080_dir/ROOT*
343 cp /root/api.war \$tomcat_8080_dir/ROOT.war344 sh\$tomcat_8080_start345 break346 else
347 echo "Exist process"
348 sleep 2
349 fi
350 done
351
352 while true
353 Connect=\`netstat -anpt |grep :8081 |grep ESTABLISHED|wc -l\`354 do
355 if [ "\$Connect" -lt "1" ]; then
356 echo "當前服務器沒有ESTABLISHED連接停止tomcat";357 # [[ -n \$tomcat_8081 ]] && kill -9\$tomcat_8081358 ps -elf |grep tomcat7-2|grep -v grep |awk '{print \$4}' |xargs kill -9
359 rm -rf \$tomcat_8081_dir/ROOT*
360 cp /root/api.war \$tomcat_8081_dir/ROOT.war361 sh\$tomcat_8081_start362 sleep 10
363 break364 else
365 echo "Exist process"
366 sleep 2
367 fi
368 done
369 sleep 5
370
371 if [ "\$tomcat_8082_port_check" -eq "1" ]; then
372 ps -elf |grep tomcat7-3|grep -v grep |awk '{print \$4}' |xargs kill -9
373 rm -rf \$tomcat_8082_dir/ROOT*
374 cp /root/api.war \$tomcat_8082_dir/ROOT.war375 sh\$tomcat_8082_start376 elif [ "\$tomcat_8082_port_check" -eq "1" ];then
377 echo "tomcat 8082 啟動成功"
378 else
379 rm -rf \$tomcat_8082_dir/ROOT*
380 cp /root/api.war \$tomcat_8082_dir/ROOT.war381 sh\$tomcat_8082_start382 fi
383
384 #=========================================后臺啟動完成 開蓋nginx===============================================================
385 sleep 5
386 if [ \$tomcat_8080_port_check -eq 1 ];then
387 wget -q -O - http://127.0.0.1:8080/health_check/set/0 > /dev/null
388 echo "tomcat 8080端口啟動正常"
389 else
390 echo "tomcat 8080端口啟動失敗 請檢查后臺程序"
391 fi
392 sleep 5
393 if [ \$tomcat_8081_port_check -eq 1 ];then
394 wget -q -O - http://127.0.0.1:8081/health_check/set/0 > /dev/null
395 echo "tomcat 8081端口啟動正常"
396 else
397 echo "tomcat 8081端口啟動失敗 請檢查后臺程序"
398 fi
399 bbb400 #==================================================腳本發送執行==================================================
401 /usr/bin/expect <
403 spawn scp /root/tomcat_kill /export/shell/appdeploy/api.war root@192.168.1.3:/root/
404 expect {405 "(yes/no)?" {send "yes\r";exp_continue}406 "password:" {send "$PASSWD\r"}407 }408 interact409 expect eof410 EOF411
412 /usr/bin/expect <
414 spawn ssh root@192.168.1.3
415 expect {416 "(yes/no)?" {send "yes\r";exp_continue}417 "password:" {send "$PASSWD\r"}418 }419 expect -re "\](\$|#)"
420 send "sh -x /root/tomcat_kill \r"
421 expect -re "\](\$|#)"
422 send "rm -rf /root/tomcat_kill \r"
423 expect -re "\](\$|#)"
424 send "exit\r"
425 interact426 expect eof427 EOF428 }429 ##############################################菜單目錄#############################################################430 read -p "請您輸入(A|B|C|D):"zm431 case "$zm" in
432 A|a)433 tomcat1434 ;;435 B|b)436 tomcat2437 ;;438 C|c)439 tomcat3440 ;;441 D|d)442 tomcat1443 tomcat2444 tomcat3445 ;;446 esac
447 exit 0
總結
以上是生活随笔為你收集整理的tomcat怎么平滑更新项目_tomcat_deploy 平滑启动脚本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Algorithm,DSW
- 下一篇: 该来的还是来了!ChatGPT制作的Ap