jenkins自动发启动测试启动是否成功的tomcat的脚本
Posted many-object
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jenkins自动发启动测试启动是否成功的tomcat的脚本相关的知识,希望对你有一定的参考价值。
#!/bin/sh #set -o errexit #默认tomcat文件夹名称 tomcat_name=apache-tomcat-9.0.16 #默认检查页面 check_page=login.jsp #默认检查页面 base_path=$(dirname $0) #默认尝试10次 max_try=10 while getopts ":u:d:p:t:m:b:" opt do case $opt in #tomcat的启动端口 u) startup_port=$OPTARG echo "启动端口的值:$OPTARG" ;; #tomcat的关闭端口 d) shutdown_port=$OPTARG echo "关闭端口的值:$OPTARG" ;; #测试的访问页面 p) check_page=$OPTARG echo "测试的页面为:$OPTARG" ;; #tomcat名称 t) tomcat_name=$OPTARG echo "tomcat名称为:$OPTARG" ;; m) max_try=$OPTARG echo "base_path为:$OPTARG" ;; b) base_path=$OPTARG echo "base_path为:$OPTARG" ;; ?) echo "未知参数" ;; esac done if [[ "$startup_port" -eq "" ]] || [[ "$shutdown_port" -eq "" ]] ; then echo "必须要有startup_port:$startup_port 启动端口,shutdown_port:$shutdown_port 关闭端口参数" exit 1 #statements fi #检查端口状态 check_port_status () if [[ $1 ]]; then echo "**********$(date):查看的端口:$1*********" return $(expr length "$(netstat -lnp|grep $1)") else echo "端口不能为空" exit 1 fi #查看url的返回码 check_url_code () if [[ $1 ]]; then echo "***********$(date):访问的url:$1**********" return $(curl -I -m 10 -o /dev/null -s -w %http_code $1) else echo "url不能为空" exit 1 fi startup_status=1 while [[ startup_status -ne 0 ]] do echo "*****************$(date):等待tomcat关闭*******************" sleep 5 check_port_status $startup_port startup_status=$? #检测tomcat是否关闭 check_port_status $shutdown_port shutdown_status=$? if [[ shutdown_status -ne 0 ]]; then echo “***************$(date)关闭tomcat****************” $base_path/$tomcat_name/bin/shutdown.sh fi done echo "********************$(date):tomcat已是关闭状态***************" echo "***************删除原有包********************" rm -rf $base_path/$tomcat_name/webapps/* echo "***************删除以前的日志********************" rm -rf $base_path/$tomcat_name/logs/* #移动现有包 echo "***************将包发布在tomcat********************" cp $base_path/ROOT.war $base_path/$tomcat_name/webapps/ #启动命令 echo "***************启动tomcat********************" $base_path/$tomcat_name/bin/startup.sh echo "*************临时取消代理***************" unset http_proxy unset https_proxy #判断是否启动成功 echo "*************等待启动完成***************" code=000 trys=0 #先睡5miao不然tomcat还没有监听端口 sleep 5 check_port_status $startup_port startup_status=$? while [[ code -eq 000 ]] && [[ trys -lt max_try ]] && [[ startup_status -ne 0 ]] do sleep 10s check_url_code http://localhost:$startup_port/$check_page code=$? trys=`expr $trys + 1` check_port_status $startup_port startup_status=$? echo "*************$(date):第 $trys 次访问 $check_page,返回码为:$code***************" done if [[ startup_status -ne 0 ]] ;then if [[ code -eq 200 ]]; then echo "***************$(date):tomcat启动成功,$check_page 访问成功,访问次数:$trys************" exit 0 else echo "***************$(date):tomcat启动成功,$check_page 访问失败,访问次数:$trys************" exit 500 fi else echo "***************$(date):tomcat启动失败,请查看启动日志************" exit 500 fi
该脚本实现了自动发布包、清日志、关闭、启动tomcat、并且会判断tomcat是否启动成功、页面是否可以访问
以上是关于jenkins自动发启动测试启动是否成功的tomcat的脚本的主要内容,如果未能解决你的问题,请参考以下文章