linux shell一键自动化部署

首先我先在svn目录下降项目从svn checkout下来

命令:svn co svn://svn.........(svn地址)

创建oa.sh(我是放在/root/shells目录下)

内容:

#!/bin/bash
. /etc/profile

/root/shells/latin-ip-seeker.sh
/root/shells/latin-common-utils.sh
/root/shells/latin-entity.sh
PROG="oa"
service tomcat-$PROG stop

TOMCAT_DIR="/application/tomcats/tomcat-$PROG-8090"
DIR="/root/svn/$PROG/trunk"
svn up $DIR
mvn clean package -Dmaven.test.skip=true -f=$DIR


rm -rf $TOMCAT_DIR/webapps/ROOT*
cp -R $DIR/target/ROOT $TOMCAT_DIR/webapps/

service tomcat-$PROG start

-------------------------------------------------------------------------------------------------------------------------------

/root/shells/latin-ip-seeker.sh
/root/shells/latin-common-utils.sh

/root/shells/latin-entity.sh

这3个脚本是需要oa项目需要依赖所需要的,也需要更新运行

PROG="oa" 取一个别名吧 方便下面使用,下面加上$PROG就是使用的oa这个。可以看做一个变量名

TOMCAT_DIR  DIR同样如此

svn up $DIR:更新svn版本,更新到最新的代码。up==》update的意思

rm -rf $TOMCAT_DIR/webapps/ROOT*

cp -R $DIR/target/ROOT $TOMCAT_DIR/webapps/

这2行代码删除tomcat下的项目,再将svn更新的项目添加到tomcat的webapps下面

service tomcat-$PROG(oa) stop  停止tomcat,start启动tomcat

这里service要注意的是必须要相/etc/init.d/目录下添加一个快捷方式,服务才会生效,service才会有用,不然会出现unrecognized service异常

如何添加参照http://mp.blog.csdn.net/postedit/79278742

tomcat-$PROG也就是tomcat-oa不能和其他服务重名。

创建service:# ln -s tomcat-oa /application/tomcats/tomcat-oa-8090/bin/daemon.sh

 服务快捷方式名:tomcat-oa 

服务启动的文件:/application/tomcats/tomcat-oa-8090/bin/daemon.sh

查看启动服务:

linux shell一键自动化部署_第1张图片

linux启动的时候会启动/etc/init.d/下的服务,init.d目录下一般是shell脚本,用来控制bin木下的服务

把tomcat下bin目录下的daemon.sh添加到快捷方式,前面是快捷方式tomcat-oa

然后执行~/shells/oa.sh就可以了

 

本人也是第一次实际工作接触linux搭建服务器,一弄就是好多个项目,如有错误之处大神多指点.

 

补充:最近又要部署多个项目,一共启动了4个Tomcat

但是部署过程中,发现了问题,一个项目还好。没问题,但是多个tomcat启动和停止问题就来了,当启动一个tomcat或者停止tomcat时候,指向的是另外一个tomcat,导致项目很混乱,因为有些依赖项目,到处报错。

比如,我关闭的是tomcat1,实际却关闭了tomcat2,tomcat1依然运行着。

后台网上查资料解决办法是:在每个tomcat/bin目录下面的 catalina.sh、startup.sh、shutdown.sh里面分别加上

export CATALINA_BASE=$CATALINA_3_BASE
export CATALINA_HOME=$CATALINA_3_HOME

=后面指向的是/etc/profile里面环境变量的引用,每个tomcat对应的目录要准确

图:

linux shell一键自动化部署_第2张图片

linux shell一键自动化部署_第3张图片

问题解决,然后各自的tomcat启动和停止都是正确的了。在想是不是没有指定具体的tomcat导致tomcat冲突了。还在分析原因,如有大神知道具体原因还望告知小弟!

 

 

 

你可能感兴趣的:(java,tomcat,linux,个人总结)