标签:shu apache log ret 脚本 http 测试的 unset 并且
#!/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的脚本
标签:shu apache log ret 脚本 http 测试的 unset 并且
原文地址:https://www.cnblogs.com/many-object/p/11063769.html