此脚本主要用来实现非maven tomcat项目的war包手动发布,

1、将测试war包上传至指定目录

2、备份目前生产代码

3、自动配置文件替换

4、新版本代码的发布

#!/bin/bash

############Setup basic path and configuration file name #########################
date=`date +%Y%m%d`
tomcat_home=/usr/local/kencery/tomcat
app_name=bqjr_fss
backup_home=~/appbak
app_home=$tomcat_home/webapps/$app_name
upload_war_home=/home/bqadm/deploy_directory
declare -a config_file=(WEB-INF/classes/dbconfig.properties WEB-INF/classes/global.properties WEB-INF/classes/mq.properties WEB-INF/classes/sso.properties WEB-INF/classes/config.properties WEB-INF/classes/log4j.properties WEB-INF/classes/quartz.properties WEB-INF/classes/uncheckedspxinfotemplate.xlsx )

#config_file主要用于配置需要替换的配置文件;

#################################################################################
process_check(){
count=`ps -ef |grep $1 |grep -v "grep" |wc -l`
if [ $count -eq 1 ];then
id=`ps -ef|grep $1 |grep -v "grep"|awk '{print $2}'`
echo -e "$1 is running,and PID is $id.\n"
elif [ $count -eq 0 ]; then
echo -e "$1 is Not running , start later\n"
return 41
fi
}

tomcat_stop(){
log_directory=`pwd`
echo -e "Start to stop tomcat:\n"
/bin/sh /$1/bin/shutdown.sh >> $log_directory/stop.log
i=0
while [ `ps -ef|grep $1|grep -v grep|wc -l` -eq 1 ]; do
echo -e "..........................\n"
if [ $(($i+1)) -gt 3 ]; then
echo "Stop tomcat failed,Kill tomcat\n"
PID=`ps -ef|grep $1|grep -v grep|awk '{print $2}'`
kill -9 $PID
break
fi
sleep 10
done
if [ `ps -ef|grep $1|grep -v grep|wc -l` -eq 0 ]; then
echo -e "Success to stop `basename $1`: \033[41;36m [OK] \033[0m\n"
else
echo -e "Failed to stop `basename $1`: \033[41;36m [Faild] \033[0m\n"
fi
}

tomcat_start(){
log_directory=`pwd`
echo -e "Start to start tomcat:\n"
echo -e "..........................\n"
/bin/sh /$1/bin/startup.sh >> $log_directory/start.log
rm -rf $1/webapps/*
cp -r $upload_war_home/$app_name.war $1/webapps/
j=0
while [ `ps -ef|grep $tomcat_home|grep -v grep|wc -l` -ne 1 ]; do
if [ $(($j+1)) -gt 3 ]; then
echo "Start failed,please check log\n";break
fi
sleep 10
done
if [ `ps -ef|grep $1|grep -v grep|wc -l` -eq 1 ]; then
echo -e "Success to start `basename $1`: \033[41;36m [OK] \033[0m\n"
else
echo -e "Failed to start `basename $1`: \033[41;36m [Faild] \033[0m\n";exit 33
fi
}
##########Backup && War package upload#############################################
if [ -d $bak_$date/$app_name ];then
echo -e "Backuped, No more backup.\n"
else
mkdir -p $backup_home/bak_$date
scp -r $app_home $backup_home/bak_$date/
ls -lsh $backup_home/bak_$date
echo -e "Backup was done, Start to check war package.\n"
fi

a=y
#read -p "Please ensure that war package has been uploaded:(y/n):" a
cd ..
cd $upload_war_home
if [ $a == 'y' ] ;then
if [ -f $app_name.war ]; then
echo -e "War package was uploaded.Will replace the configuration file.\n"
else
echo -e "No War package,Please upload the war package to $upload_war_home.\n"; exit 0
fi
else
echo "Choice is NO. War package hasnot been uploaded,Please upload the war file to $upload_war_home."; exit 0

fi

###########Replace configuration file#######################################################################

echo -e "Start to replace confige file"
mkdir -p $upload_war_home
for var in ${config_file[@]};
do
cd $app_home
cp --parents $var $upload_war_home
done
cd $upload_war_home
for var in ${config_file[@]};
do
jar -uvf $app_name.war $var
done

############Application deploy##################################################################################
process_check `basename $tomcat_home`
if [ $? -eq 41 ]; then
tomcat_start $tomcat_home
else
tomcat_stop $tomcat_home
tomcat_start $tomcat_home
fi

shell 实现war包的配置更新和自动发布的更多相关文章

  1. springboot+vue前后端分离,nginx代理配置 tomcat 部署war包详细配置

    1.做一个小系统,使用了springboot+vue 基础框架参考这哥们的,直接拿过来用,链接https://github.com/smallsnail-wh/interest 前期的开发环境搭建就不 ...

  2. Centos7安装Tomcat并部署DubboAdmin的War包并配置自动启动

    一.安装过程 1.打开官网,在左侧选择要下载的版本,比如下下载Tomcat8:https://tomcat.apache.org/download-80.cgi 2.找到tar.gz的下载地址:htt ...

  3. MyEclipse生成WAR包并在Tomcat下部署发布(转发)

    从来没有想过web项目还能打包的,但是有要求,就不得不去实现,在网上找了一下,发现挺简单的. 首先是使用MyEclipse将web项目打包,如下图所示. 右键选中项目,选择export. 然后选择J2 ...

  4. MyEclipse生成WAR包并在Tomcat下部署发布[转]

      从来没有想过web项目还能打包的,但是有要求,就不得不去实现,在网上找了一下,发现挺简单的. 首先是使用MyEclipse将web项目打包,如下图所示. 右键选中项目,选择export. 然后选择 ...

  5. Windows下配置Jenkins 实现自动发布maven项目至tomcat(svn+maven+tomcat)

    Jenkins安装完成之后,需要我们对其配置,然后才可以实现自动部署项目. 前提 防火墙开放tomcat的8080端口 Linux(CentOS):firewall-cmd --zone=public ...

  6. 【Tomcat】shell获得war包

    功能: 将maven项目打包复制到tomcat/webapps set git=C:\Users\zhengwenqiang\git set tomcat=e:\tomcat7.0.64 c: cd ...

  7. 配置Jenkins 实现自动发布maven项目至weblogic(svn+maven+weblogic12c)

    Jenkins安装完成之后,需要我们对其配置,然后才可以实现自动部署项目. 前提 防火墙开放weblogic的7001端口 Linux(CentOS):firewall-cmd --zone=publ ...

  8. 【Tomcat】shell 部署配置 war包

    使用shell 一次执行,将项目中的war包的配置全部修改 #!/bin/bash #----------------------------------------------- # FileNam ...

  9. Tomcat:tomcat部署war包配置SSL访问

    Linux-CentOS7部署 war放置 war放到tomcat的webapps目录内 修改配置 修改tomcat的server.xml文件 HTTP: 找到Connector元素,修改端口 HTT ...

随机推荐

  1. 51nod 1055:最长等差数列

    1055 最长等差数列 基准时间限制:2 秒 空间限制:262144 KB 分值: 80 难度:5级算法题  收藏  取消关注 N个不同的正整数,找出由这些数组成的最长的等差数列. 例如:1 3 5 ...

  2. JS - n次方计算

    pow 方法返回底表达式的指定次幂. Math.pow(base, exponent)  参数base 必选项.表达式底的值. exponent 必选项.表达式的指数值.

  3. Spark 2.x 在作业完成时却花费很长时间结束

    使用 Apache Spark 2.x 的时候可能会遇到这种现象:虽然 Spark Jobs 已经全部完成了,但是程序却还在执行.比如我们使用 Spark SQL 去执行一些 SQL,这个 SQL 在 ...

  4. CSU 1126 DFS前缀和

    在一棵树上找影响最小的某个点,某个点的影响是等于其他点到他的距离*其他点的权值 的和 我一开始也找不到什么好的方法,只能想到每个点暴力去判断,但是这样肯定会超时(10^5个点),又有点想用类似前缀和, ...

  5. linux之 文本编辑 的基础知识点

    第一步 打开终端 创建文件命令 touch 文件名.后缀名 打开文件命令 vi 文件名.后缀名 (此时进去txt文件之后为一般模式,你无法对文件进行增删改) 之后按 i    或 a    或o  都 ...

  6. python 导入数据包的几种方法

    1.直接导入整个数据包:improt 数据包 参考代码: # -*- coding:utf-8 -*- # 导入random数据包 import random # 引用random数据包中的randi ...

  7. Tornado的XSRF防范

    XSRF XSRF即为跨站请求伪造 这个漏洞利用了浏览器的一个允许恶意攻击者在受害者网站注入脚本使未授权请求代表一个已登录用户的安全漏洞. 了解XSRF 当一个网站的图片SRC属性为另一个网站的链接时 ...

  8. 21 ~ express ~ 前台内容分类展示

    一,前台 , views/main/index.html ,通过get传送给后台 思路 : 将栏目ID 传递给后台,后台根据 栏目的ID 返回相应的数据   {% if category == '' ...

  9. hibernate.hbm.xml必须必须配置主键

    hibernate.hbm.xml必须必须配置主键 <id name="XXid" type="java.lang.long" column=" ...

  10. 【转】modelBuilder.Configurations.AddFromAssembly in EF Core

    EntityFramework 6.x protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnMode ...