shell 实现war包的配置更新和自动发布
此脚本主要用来实现非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包的配置更新和自动发布的更多相关文章
- springboot+vue前后端分离,nginx代理配置 tomcat 部署war包详细配置
1.做一个小系统,使用了springboot+vue 基础框架参考这哥们的,直接拿过来用,链接https://github.com/smallsnail-wh/interest 前期的开发环境搭建就不 ...
- Centos7安装Tomcat并部署DubboAdmin的War包并配置自动启动
一.安装过程 1.打开官网,在左侧选择要下载的版本,比如下下载Tomcat8:https://tomcat.apache.org/download-80.cgi 2.找到tar.gz的下载地址:htt ...
- MyEclipse生成WAR包并在Tomcat下部署发布(转发)
从来没有想过web项目还能打包的,但是有要求,就不得不去实现,在网上找了一下,发现挺简单的. 首先是使用MyEclipse将web项目打包,如下图所示. 右键选中项目,选择export. 然后选择J2 ...
- MyEclipse生成WAR包并在Tomcat下部署发布[转]
从来没有想过web项目还能打包的,但是有要求,就不得不去实现,在网上找了一下,发现挺简单的. 首先是使用MyEclipse将web项目打包,如下图所示. 右键选中项目,选择export. 然后选择 ...
- Windows下配置Jenkins 实现自动发布maven项目至tomcat(svn+maven+tomcat)
Jenkins安装完成之后,需要我们对其配置,然后才可以实现自动部署项目. 前提 防火墙开放tomcat的8080端口 Linux(CentOS):firewall-cmd --zone=public ...
- 【Tomcat】shell获得war包
功能: 将maven项目打包复制到tomcat/webapps set git=C:\Users\zhengwenqiang\git set tomcat=e:\tomcat7.0.64 c: cd ...
- 配置Jenkins 实现自动发布maven项目至weblogic(svn+maven+weblogic12c)
Jenkins安装完成之后,需要我们对其配置,然后才可以实现自动部署项目. 前提 防火墙开放weblogic的7001端口 Linux(CentOS):firewall-cmd --zone=publ ...
- 【Tomcat】shell 部署配置 war包
使用shell 一次执行,将项目中的war包的配置全部修改 #!/bin/bash #----------------------------------------------- # FileNam ...
- Tomcat:tomcat部署war包配置SSL访问
Linux-CentOS7部署 war放置 war放到tomcat的webapps目录内 修改配置 修改tomcat的server.xml文件 HTTP: 找到Connector元素,修改端口 HTT ...
随机推荐
- S7-200 smart 网线下载与调试配置
打开 step microwin 7 smart 软件. 连接PLC 打开 通讯模块 我把电脑的改成了如下 我编写的简单的程序 通过外部一个开关 实现输出的一个 IO 的接通与断开 下载完成程序以后 ...
- 官网英文版学习——RabbitMQ学习笔记(二)RabbitMQ安装
一.安装RabbitMQ的依赖Erlang 要进行RabbitMQ学习,首先需要进行RabbitMQ服务的安装,安装我们可以根据官网指导进行http://www.rabbitmq.com/downlo ...
- 《Java面试全解析》1000道面试题大全详解(转)
<Java面试全解析>1000道 面试题大全详解 本人是 2009 年参加编程工作的,一路上在技术公司摸爬滚打,前几年一直在上海,待过的公司有 360 和游久游戏,因为自己家庭的原因,放弃 ...
- XV6操作系统代码阅读心得(五):文件系统
Unix文件系统 当今的Unix文件系统(Unix File System, UFS)起源于Berkeley Fast File System.和所有的文件系统一样,Unix文件系统是以块(Block ...
- 040-PHP使用闭包函数来进行父实例的变量自增,正确示例
<?php // 如何使用闭包函数来进行父实例的变量自增 function demo(){ $num = 1; # 给use的变量加个&符合,就能改变对应参数的域的限制 $func = ...
- 吴裕雄--天生自然C++语言学习笔记:C++ 多线程
多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序.一般情况下,两种类型的多任务处理:基于进程和基于线程. 基于进程的多任务处理是程序的并发执行. 基于线程的多任务处理 ...
- linux项目,项目报错,排查
今天在遇到以前部署的项目突然没有数据了,然后就去服务器看了一下,打印日志发现报错了,现在我是一脸懵逼,因为不知道怎么排查 然后同事告诉说先看报错的原因,然后再去找认识的类,我打码的都是一些认识的 然后 ...
- 黑马oracle_day01:02.oracle的基本操作
01.oracle体系结构 02.oracle的基本操作 03.oracle的查询 04.oracle对象 05.oracle编程 02.oracle的基本操作 PLSQL中文乱码问题解决1.查看服务 ...
- EUI库 - 9 - 数据集合 - 数据容器
DataGroup 设置一个数据源 自动创建内部所需的对象 来完成数据展示 还要设置单条数据的模板 叫ItemRenderer 继承关系 eui.List eui.ListBase e ...
- 屏幕适配 - JS - 网站布局元素
网页可见区域宽:document.body.clientWidth; 网页可见区域高:document.body.clientHeight; 网页可见区域高:document.body.offsetW ...