web工程自动部署(tomcat服务器)

时间:2023-03-09 06:45:29
web工程自动部署(tomcat服务器)

工作中经常需要把web项目打成war包之后部署到tomcat服务器上,每次更新时步骤比较类似,这里提供公共步骤,编写名为auto_deploy.sh的shell脚本,只需要传递两个参数即可自动完成部署操作。舒服!

参数1:要部署的工程名

参数2:要部署文件的路径

shell脚本如下:

 #传递参数 要部署的工程名 要部署文件目录路径
#!/bin/bash
#需要修改的地方 start--
#工程名
readonly project_name= #端口号
readonly port=
readonly xml_name=''
readonly sh_name=''
#需要修改的地方 end--
#今日时间 格式为 YYYYY_MM_DD_HH_MM
suffix=`date +%Y%m%d%H%M`
#要部署工程的名字
cur_project_name=$
#要部署文件目录路径
declare dir=$
echo "传入的参数为部署工程名:$cur_project_name 文件路径:$dir"
#备份后的名字
bk_project_name=${project_name}"_"${suffix}
echo ${bk_project_name}
#备份原工程
echo 'start---'
if [ -d /data/wwwroot/$project_name ];
then
sudo mv /data/wwwroot/$project_name /data/wwwroot/$bk_project_name
#拷贝待部署工程到wwwroot目录
sudo cp -rf ${dir}/$cur_project_name /data/wwwroot/
echo '拷贝over...'
#重命名新工程名
sudo mv /data/wwwroot/$cur_project_name /data/wwwroot/$project_name
echo '重命名over...'
#删除新工程class目录下除'cn'以外的文件
ls /data/wwwroot/$project_name/WEB-INF/classes/ |grep -v cn|xargs rm -rf {}
echo '清空新工程class下目录over...'
#拷贝原工程中class下除'cn'以外的目录到新工程对应目录中
cd /data/wwwroot/$bk_project_name/WEB-INF/classes/
ls|grep -v cn|xargs -i cp -rf {} /data/wwwroot/$project_name/WEB-INF/classes/
echo '添加class下目录over...'
#覆盖web.xml文件
sudo cp -rf /data/wwwroot/$bk_project_name/WEB-INF/web.xml /data/wwwroot/$project_name/WEB-INF/
echo '覆盖over...'
#查看原工程运行的进程id并kill
ps -ef|grep java|grep ${port}|grep ${xml_name}|grep -v grep|awk '{print "kill -9 " $2}' |sh
echo 'kill over...'
#进入tomcat的bin目录下面
cd /data/program/tomcat/bin/
sudo ./${sh_name}.sh start
echo 'end...'
else
echo '路径不存在'
fi