Linux命令修改Tomcat中的war包项目的属性文件
使用 Tomcat部署 war包,不同的环境需要不同的配置,war包是同一个。那么如何动态修改这个properties属性文件?
这里有很多种做法,最直接的就是拉取war后,先修改war包里值,然后再启动(这种方法我没有尝试)。
我要说的是另一种,不修改war包,只修改war包解压后的属性文件。如果直接修改对应路径的文件,往往会报错 No such file or directory。我这边利用的是 Tomcat 启动两次不会再次解压war 包 的特性来实现。
以下是脚本的精简版,目的是往demo.war 里的application.properties 文件里追加一行配置 csrf.white.referer=localhost
修改前的代码
#!/bin/bash set -x #查找进程号,直接杀进程 pidNum=`ps -ef |grep tomcat_bing |grep -v "grep"|awk '{print $2}'` kill -9 $pidNum sleep 5 cd /home/tomcat_bing/webapps rm -rf demo #备份 mv demo.war ../ rm -rf demo.war #wget命令从ftp服务器拉取war包 wget http://172.xx.xx.123/bing/demo.war #启动tomcat包 nohup /home/tomcat_bing/bin/startup.sh &
修改后的代码,在修改前的代码后面增加以下内容
sleep 10s #再次杀进程 pidNum=`ps -ef |grep tomcat_8092 |grep -v "grep"|awk '{print $2}'` kill -9 $pidNum sleep 5 #properties里追加内容,先追加一句空白,否则可能不会换行 echo "" >> /home/tomcat_bing/webapps/demo/WEB-INF/classes/application.properties echo "csrf.white.referer=localhost" >> /home/tomcat_bing/webapps/demo/WEB-INF/classes/application.properties #不使用追加的方法,用cp命令复制,也是极好的 #重新启动 nohup /home/tomcat_bing/bin/startup.sh &
原创文章,欢迎转载,转载请注明出处!
把每一件简单的事情做好,就是不简单;把每一件平凡的事情做好,就是不平凡!相信自己,创造奇迹~~