tomcat部署脚本

tomcat部署脚本

  上周无意中在服务器上发现的,以前写的一个脚本(顺便凑下博客数,哈哈哈~~~挺厚颜无耻的),记录下自己成长咯

  话说有段时间,经常要我部署tomcat应用,然后手动改到我烦,于是就有这个脚本的由来。

  刚来公司的时候,老运维统一把tomcat安装目录放在  /home/${普通用户}/app/  下,所以下面脚本里的app目录下,是tomcat的安装目录

  其实这个脚本有bug,要增加一个函数去判断端口是否被使用,等我晚点再补充。。。

思路:

  1、给脚本传参:要部署的服务名

  2、进去tomcat安装目录,服务名根据已有的安装目录进行复制

  3、修改 server.xml 文件

  (1)修改端口:包括关停端口、http端口、ajp端口

  (2)修改:Context path

  4、删除复制过来的源tomcat日志目录,新建新部署tomcat的数据目录

#!/bin/bash

cservice_name=$1
cd /home/${LOGNAME}/app/
ls
read -p "choose the tomcat dir to copy : " copy_dir
cp -rp ${copy_dir} ${cservice_name}

cd /home/${LOGNAME}/app/${cservice_name}/conf/

###### 1.1、modify the server.xml
####1、change tomcat port
shutdown_port=`cat server.xml|sed  's/<!--/\n<!--\n/'|sed  's/-->/\n-->\n/'|sed  '/<!--/,/-->/ d'|sed  '/-->/ d'|sed '/^\s*$/d' | grep "shutdown" |awk -F"\"" '{print $2}'`
printf "Current shutdown_port is : %s\n" ${shutdown_port}     
read -p "please enter the new shutdown port: " csd_port
sed -i 's/'${shutdown_port}'/'${csd_port}'/' server.xml

http_port=`cat server.xml|sed  's/<!--/\n<!--\n/'|sed  's/-->/\n-->\n/'|sed  '/<!--/,/-->/ d'|sed  '/-->/ d'|sed '/^\s*$/d' | grep "HTTP" |awk -F"\"" '{print $2}'`
printf "Current http port is : %s\n" ${http_port}
read -p "please enter the new http port: " chttp_port
sed -i 's/'${http_port}'/'${chttp_port}'/' server.xml

ajp_port=`cat server.xml|sed  's/<!--/\n<!--\n/'|sed  's/-->/\n-->\n/'|sed  '/<!--/,/-->/ d'|sed  '/-->/ d'|sed '/^\s*$/d' | grep "AJP" |awk -F"\"" '{print $2}'`
printf "Current AJP port is : %s\n" ${ajp_port}
if [ $ajp_port ]; then
   read -p "please enter the new AJP port: " cajp_port
   sed -i 's/'${ajp_port}'/'${cajp_port}'/' server.xml
fi

##### 1.2、change service name
service_name=`cat server.xml|sed  's/<!--/\n<!--\n/'|sed  's/-->/\n-->\n/'|sed  '/<!--/,/-->/ d'|sed  '/-->/ d'|sed '/^\s*$/d' | grep 
"<Context path" | awk -F"\"" '{print $2}' | tr -d '/'`
printf "Current service is : %s\n" ${service_name}
sed -i 's/'${service_name}'/'${cservice_name}'/g' server.xml


##### 1.3rm log dir
rm -rf /home/${LOGNAME}/app/${cservice_name}/logs/*

##### mkdir data dir
[ ! -d /home/${LOGNAME}/data/${cservice_name} ] &&  mkdir /home/${LOGNAME}/data/${cservice_name}

 

posted @ 2022-04-04 21:38  windysai  阅读(127)  评论(0编辑  收藏  举报