使用sed更改tomcat监听端口

时间:2014-10-16 14:32:28

标签: bash tomcat sed

我正在尝试使用sed来改变tomcat的server.xml,特别是这些行中的侦听端口

<Connector port="8080" protocol="HTTP/1.1" 
       connectionTimeout="20000" 
       redirectPort="8443" />

通过bash脚本执行此操作至关重要。 我试图通过answer来提供所提供的脚本(特别是sed行),但我对sed完全是新手,所以我失败了。

我也试过这样的事情

sed -i "s|Connector port=[^ ]*|Connector port=8880|g" $CNF_PATH

任何见解都会有所帮助。

4 个答案:

答案 0 :(得分:3)

sed -i 's/port="8080"/port="8880"/' inputfile

将提供输出

<Connector port="8880" protocol="HTTP/1.1" 
       connectionTimeout="20000" 
       redirectPort="8443" />

它的作用是什么?

s命令替换。

它将模式Connector port="8080"替换为Connector port="8880"

如果您想使用8880重新设置任何端口号,可以使用

sed -r  's/port="[0-9]{4}"/port="8880"/g' inputfile

[0-9]匹配任何数字 {4}与preios模式匹配4次。

答案 1 :(得分:1)

你可以试试下面的sed命令,

sed -i 's|\(Connector port="\)[^"]*"|\18880"|g' file

答案 2 :(得分:1)

您还可以免除sed,而是使用Tomcat在server.xml中进行系统属性替换的能力:

<Connector port="${tomcat-connector-port}" ... />

然后,在启动Tomcat时,使用:

$ CATALINA_OPTS="-Dtomcat-connector-port=1234" bin/catalina.sh start

答案 3 :(得分:1)

要专门更新HTTP连接器端口:

导出TOMCAT_HTTP_PORT =&#34; 35000&#34;

sed -e 's/\(<Connector[ ]*\)\(port=\"[0-9]*\"\)\([ ]*protocol=\"HTTP.*\)/\1port="'$TOMCAT_HTTP_PORT'"\3/' </your/path/to/tomcat>/conf/server.xml