shell 获取tomcat端口

脚本实现功能,可以根据不同项目要求,从tomcat进程名修改 端口 内存 项目名称 版本等多个途径修改tomcat,打包压缩。

这个脚本是我集成在jenkins上用的,所以有一些包括路径这些信息是通过jenkins传值的。如果单独使用需要手动配置路径即可。

下面是脚本内容:

#!/bin/bash

#$1 tomcat_version $2 tomcat_JAVA_HOME #调用当前shell时需要传入的参数 第一个tomcat版本 这里配置的是7 和8版本,第二个参数是JAVA_HOME

set-e#出错即停止

#update_tomcat() $1=$WD $2=$TOMCAT_V #这个方法需要传的参数

#copy_tomcat() $1=$WD $2=$TOMCAT_V $3=TOMCAT_PROC_PORT

#TOMCAT_PROC_PORT => 对应关系: process_name shutdown_port http1.1_port AJP_port

WORKDIR=”/tmp/soft” #tomcat 的输出路径

if [ $# -gt 0 ];then #判断当前方法的传值的数量如果是大于0,赋值给n

n=$1

else

read-p”tomcat 大版本号[78]:”n #读取控制台输入的值,这里就是获取一个tomcat版本号

fi

JAVA_HOME=”$2″

JRE_HOME=”$3″

DATE=$(date -I) #获取一个日期。

WD=$WORKDIR/$DATE

#svn 的用户名密码,为方便tomcat原始版本管理,我把原始版本的tomcat放在svn上。

USER=admin

PASSWD=123456

TOMCAT_DIR=$WORKDIR/$DATE

#TOMCAT_NAME=`ls $TOMCAT_DIR`

REPOS=/repos #从svn上check out出来之后先放在这个目录。

TOMCAT_REPOS=/repos/tomcat$n

#下面三种内存配置是我的环境中需要的三种内存配置

COMMON_OPTS=”JAVA_OPTS=’-Xms1024M -Xmx1024m -XX:MaxNewSize=128m -XX:MaxPermSize=256m -XX:PermSize=128M'”

MEM_ORDER_ERP_OPTS=”JAVA_OPTS=’-Xms2048M -Xmx2048m -XX:MaxNewSize=128m -XX:MaxPermSize=256m -XX:PermSize=128M'”

SHOP_OPTS=”JAVA_OPTS=’-Xms512M -Xmx512m -XX:MaxNewSize=128m -XX:MaxPermSize=256m -XX:PermSize=128M'”

#TOMCAT_PROC_PORT=(base erp ext mem order pos sys wd) 下面我定义了一个数组,解释下 例如base-8100-8101-8183 这个就是一个tomcat的进程以及三个端口的参数,后面会用awk截取出来

TOMCAT_PROC_PORT=(base-8100-8101-8183erp-8102-8103-8186mem-8106-8107-8187order-8108-8109-8185pos-8110-8111-8188sys-8112-8113-8181wd-8114-8115-8190shop-8116-8117-8189vm-8118-8119-8182extdata-8120-8121-8184)

update_tomcat() {

cd $1 #切换目录,目录为调用该方法的第一个参数 然后解压,删除tomcat中没用的文件夹或者文件

tar -zxf apache-tomcat-$2.tar.gz

rm -rf $1/apache-tomcat-$2/{LICENSE,NOTICE,RELEASE-NOTES,RUNNING.txt}

rm -rf apache-tomcat-$2/webapps/*

rm -rf ./*.tar.gz

}

copy_tomcat() {

cd $1

local array=$3

for i in ${array[*]}

do

proc=`echo $i |awk -F”-” ‘{print $1}’` #这里是分别一次是获取进程名,用于将不同的tomcat进程修改成对应服务的进程名,tomcat三个端口

shut_port=`echo $i |awk-F”-” ‘{print $2}’`

http_port=`echo $i |awk-F”-” ‘{print $4}’`

ajp_port=`echo $i |awk -F”-” ‘{print $3}’`

cp -rf apache-tomcat-$2$proc-tomcat

#update process

sed -i “s/java$/$proc-tomcat/” $proc-tomcat/bin/setclasspath.sh

#update port 更新tomcat端口 三个端口 ajp端口 http端口 shutdown端口

sed -i “s/8005/$shut_port/g” $proc-tomcat/conf/server.xml

sed -i “s/8009/$ajp_port/g” $proc-tomcat/conf/server.xml

sed -i “s/8080/$http_port/g” $proc-tomcat/conf/server.xml

sed -i “1aexport $JAVA_HOME” $proc-tomcat/bin/setclasspath.sh #指定位置插入对应字符串

sed-i “2aexport $JRE_HOME”$proc-tomcat/bin/setclasspath.sh

#update charset 编码设置

if [ $n -eq 7 ];then

sed -i “73s#/>#URIEncoding=”UTF-8″&#g” $proc-tomcat/conf/server.xml #指定位置并在对应位置后面追加编码

elif [ $n -eq 8 ];then#这里判断tomcat版本

sed -i “71s#/>#URIEncoding=”UTF-8″ &#g” $proc-tomcat/conf/server.xml

#update JAVA_OPS 更新jvm内存配置

if [ $proc=’erp’ -o $proc=’mem’ -o $proc=’order’ ];then #判断指定的服务内存设置不同大小

echo “mem-tomcat/erp-tomcat/order-tomcat set JAVA_OPTS is 2048M:”$MEM_ORDER_ERP_OPTS

sed -i “279a$MEM_ORDER_ERP_OPTS” $proc-tomcat/bin/catalina.sh

elif [[ $proc=’shop’ ]];then

echo “shop-tomcat set JAVA_OPTS is 512M:==>” $SHOP_OPTS

sed -i “279a$SHOP_OPTS” $proc-tomcat/bin/catalina.sh

else

echo “other app mem:” $COMMON_OPTS

sed -i “279a$COMMON_OPTS” $proc-tomcat/bin/catalina.sh

fi

else

sed -i “71,73s#/>#URIEncoding=”UTF-8″ &#g” $proc-tomcat/conf/server.xml

fi

done

rm -rf apache-tomcat-$2*

}

#压缩tomcat的方法

tar_tomcat(){

cd $TOMCAT_DIR

for tar_tomcat in $(ls ./)

do

tar -zcf $tar_tomcat.tar.gz $tar_tomcat

rm -rf $tar_tomcat

done

}

if [ ! -d $TOMCAT_REPOS ];then #判断版本库存不存在,不存在创建一个

mkdir -p $TOMCAT_REPOS

fi

echo $DATE

if[ ! -d $WORKDIR ];then

mkdir -p $WORKDIR

fi

cd $WORKDIR

if [ ! -d $DATE ];then

mkdir $DATE

echo $DATE > $WORKDIR/record

fi

TOMCAT_NAME=`ls $TOMCAT_DIR`

cd $REPOS

if [ $(ls -al $TOMCAT_REPOS | grep svn|wc -l) -eq 0 ];then #从svn傻姑娘check out 或者 update

svn co http://192.168.0.91/repos/soft/tomcat$n–username=$USER–password=$PASSWD

else

#svn update http://192.168.0.91/repos/soft/tomcat$n –username=$USER –password=$PASSWD

cd tomcat$n

svn update

fi

if [ $? -eq 0 ];then

cd $WORKDIR/$DATE

line=`ls $TOMCAT_REPOS | sed ‘s/.tar.gz//’`

TOMCAT_V=${line:14:6} #截取tomcat版本号

rm -rf apache-tomcat-*

cp -f $TOMCAT_REPOS/apache-tomcat-$TOMCAT_V.tar.gz $WD

#方法调用

update_tomcat $WD $TOMCAT_V

copy_tomcat $WD $TOMCAT_V” ${TOMCAT_PROC_PORT[*]}”

tar_tomcat $WD

fi

cd $WORKDIR

rm -rf latest

cp -rf $DATE latest

#sh /tmp/shell/test.sh

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com

(0)
上一篇 2023年 5月 9日 上午9:34
下一篇 2023年 5月 9日 上午9:40

相关推荐

  • 如何向报社投稿发表自己的文章作品呢

    现在的很多读者平时也有一些写作、创作习惯,尤其是在写了一些自己十分满意的作品时,就会想要发表出来,通常大家都会投稿给一些报社、杂志等等,如果对方用了你的稿件后,会马上给予回复,还可…

    互联网 2023年 7月 18日
  • 甘肃一地深夜出现火球不明物

    昨天傍晚5点50分左右,一道巨大火光划过天空,浙江多地市民目睹了罕见一幕。经专家介绍,这应该是一道罕见的“火流星” 。 当地宣传部工作人员证实,有多位村民在檀溪镇城头村、寺前村、毛…

    2023年 1月 31日
  • 微信亲属卡你用过没,微信亲属卡该怎么用

    微信“亲属卡”功能你用过吗? 注意!!! 诈骗分子盯上了这个功能 已经有不少人中招 什么是微信“亲属卡”? 顾名思义 微信用户 可以向指定亲属好友 开通“亲属卡”服务 让对方获得使…

    2023年 1月 19日
  • 信用卡分期了还能刷出来吗

    相信很多卡友都有接到过银行邀请做账单分期的电话,账单分期可以缓解还款压力,还能帮助我们提额,想必很多朋友都有做过。但你知道分期还有另外两种形式么?这些分期到底划不划算呢? 第一种:…

    2023年 6月 18日
  • 人像照片后期常用色调

    人像照片面部暗,色彩不好咋办?前期拍摄和后期调色,全套介绍 拍人像的朋友,经常会遇到,面部暗,或者照片整体色彩、亮度不正常。那在前期应该咋办,虚化背景又该怎么拍,后期怎么调色? #…

    2023年 10月 15日
  • 支付宝年度账单怎么看?(支付宝记账本怎么看年度账单)

    早在两天前,支付宝就在官方微博上宣布:“我想发年度账单了,你们谁也别拦着我!” 后来可能是良心发现那一天是周六,就又发了一条:“算了,我想了一下,还是周一发吧,大家过个愉快的周末吧…

    2023年 5月 11日
  • 百度贴吧发帖推广引流技巧和技术

    贴吧百度是世界最大的汉语小区,据有关的组织统计分析申请注册客户超过6亿,日开朗用户数量超过3亿,里边包括有各种各样不一样兴趣爱好,不一样制造行业的贴吧群体集聚在里边,因此就吸引住了…

    互联网 2023年 5月 25日
  • 票房造假为何屡禁不止(票房造假到底好不好)

    百姓对优秀影视作品需求越来越高,票房造假者终将被影迷和市场抛弃,也会影响我国影视行业的可持续发展 目前,正在上映的国产电影《地球最后的夜晚》被指恶意刷票房,这部打出“一吻跨年”营销…

    互联网 2023年 3月 11日
  • 动漫:你认为最好看的十大动漫分别是什么

    导读:动漫作为一种受欢迎的娱乐形式,已经成为了许多人生活中不可或缺的一部分。在这个充满了各种各样的动漫作品的时代,有些动漫作品因为其独特的风格、深刻的情感和精彩的剧情而备受关注。下…

    2023年 7月 26日
  • wps表格函数公式大全(wps表格怎么跨工作表设置公式)

    日常办公时,我们经常会用表格处理数据。虽然能掌握基础的操作,但是涉及「函数」时,很多人就开始头疼了。 毕竟在实现精通 Office 的路上,函数一直都是绕不过的一道坎。 今天,WP…

    2023年 6月 15日