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

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

参数1:要部署的工程名

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

shell脚本如下:

 1 #传递参数 要部署的工程名 要部署文件目录路径
 2 #!/bin/bash
 3 #需要修改的地方 start--
 4 #工程名
 5 readonly project_name= 6 #端口号
 7 readonly port=
 8 readonly xml_name=''
 9 readonly sh_name=''
10 #需要修改的地方 end--
11 #今日时间 格式为 YYYYY_MM_DD_HH_MM
12 suffix=`date +%Y%m%d%H%M`
13 #要部署工程的名字
14 cur_project_name=$1
15 #要部署文件目录路径
16 declare dir=$2
17 echo "传入的参数为部署工程名:$cur_project_name 文件路径:$dir"
18 #备份后的名字
19 bk_project_name=${project_name}"_"${suffix}
20 echo ${bk_project_name}
21 #备份原工程
22 echo 'start---'
23 if [ -d /data/wwwroot/$project_name ];
24 then
25 sudo mv /data/wwwroot/$project_name /data/wwwroot/$bk_project_name
26 #拷贝待部署工程到wwwroot目录
27 sudo cp -rf ${dir}/$cur_project_name /data/wwwroot/
28 echo '拷贝over...'
29 #重命名新工程名
30 sudo mv /data/wwwroot/$cur_project_name /data/wwwroot/$project_name
31 echo '重命名over...'
32 #删除新工程class目录下除'cn'以外的文件
33 ls /data/wwwroot/$project_name/WEB-INF/classes/ |grep -v cn|xargs rm -rf {}
34 echo '清空新工程class下目录over...'
35 #拷贝原工程中class下除'cn'以外的目录到新工程对应目录中
36 cd /data/wwwroot/$bk_project_name/WEB-INF/classes/
37 ls|grep -v cn|xargs -i cp -rf {} /data/wwwroot/$project_name/WEB-INF/classes/
38 echo '添加class下目录over...'
39 #覆盖web.xml文件
40 sudo cp -rf /data/wwwroot/$bk_project_name/WEB-INF/web.xml /data/wwwroot/$project_name/WEB-INF/
41 echo '覆盖over...'
42 #查看原工程运行的进程id并kill 
43 ps -ef|grep java|grep ${port}|grep ${xml_name}|grep -v grep|awk  '{print "kill -9 " $2}' |sh
44 echo 'kill over...'
45 #进入tomcat的bin目录下面
46 cd /data/program/tomcat/bin/
47 sudo ./${sh_name}.sh start
48 echo 'end...'
49 else
50 echo '路径不存在'
51 fi
原文地址:https://www.cnblogs.com/uodut/p/7070507.html