#!/bin/bash
function printLog() {
nowTime=$(date "+%Y-%m-%d %H:%M:%S")
echo "${nowTime} -- $1"
}
# tomcat 访问路径
TOMCAT_URL=http://127.0.0.1:8080
# tomcat 登录用户名
TOMCAT_USER='admin'
# tomcat 登录密码
TOMCAT_PASSWORD='1'
# 操作的应用名称
APP_NAME='host-manager'
# 操作类型,支持 start、stop、reload
OPERATE_TYPE='Reload'
APP_NAME=$1
APP_PATH=$1
OPERATE_TYPE=$2
check=1
if [ "${APP_NAME}" = "" ]; then
printLog "第一个参数请指定操作的应用名称"
check=0
fi
if [ "${OPERATE_TYPE}" = "" ]; then
printLog "第二个参数请指定操作类型,目前支持 start、stop、reload"
check=0
fi
if [ "${check}" = "0" ]; then
exit 1
fi
if [ "${APP_NAME:0:1}" != "/" ]; then
APP_PATH="/${APP_NAME}"
fi
GREP_TEXT=""
if [ "${OPERATE_TYPE}" = "start" ]; then
GREP_TEXT='<input type="submit" value="Start">'
elif [ "${OPERATE_TYPE}" = "reload" ]; then
GREP_TEXT='<input type="submit" value="Reload">'
elif [ "${OPERATE_TYPE}" = "stop" ]; then
GREP_TEXT='<input type="submit" value="Stop">'
fi
if [ "${GREP_TEXT}" = "" ]; then
printLog "OPERATE_TYPE 配置不合法,当前仅支持 start、stop、reload 操作"
exit 1
fi
body=$(curl -s -i -u "${TOMCAT_USER}":"${TOMCAT_PASSWORD}" "${TOMCAT_URL}"/manager/html)
cookie=$(echo "${body}" | grep 'Set-Cookie: JSESSIONID=' | awk '{print $2}')
cookie=${cookie:0:-1}
url=$(echo "${body}" | grep "/${APP_PATH:1}&")
if [ "${url}" = "" ]; then
printLog "不存在应用 ${APP_NAME}"
exit 1
fi
url=$(echo "${url}" | grep "${GREP_TEXT}" | awk '{print $4}')
if [ "${url}" = "" ]; then
printLog "应用 ${APP_NAME} 当前不支持 ${OPERATE_TYPE} 操作"
exit 1
fi
url="${url:8:-2}"
url="${url/////}"
url="${url//&/&}"
url="${TOMCAT_URL}${url}"
printLog "应用 ${APP_NAME} ${OPERATE_TYPE} 开始"
body=$(curl -s -i -XPOST -u "${TOMCAT_USER}":"${TOMCAT_PASSWORD}" --cookie "${cookie}" $url)
if [ "${body:0:12}" = 'HTTP/1.1 200' ]; then
printLog "应用 ${APP_NAME} ${OPERATE_TYPE} 结束"
else
printLog "应用 ${APP_NAME} ${OPERATE_TYPE} 失败"
fi