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 '// 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 '// 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 '// 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 '// d'|sed '/-->/ d'|sed '/^\s*$/d' | grep "" | 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.3、rm 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}