shell脚本自动化部署

!/bin/bash

#export PATH=$PATH:/export/maven/bin

run_flag_dir="/data0/shell/deploy_workspace/Test"
if [ ! -d "$run_flag_dir" ]; then
mkdir -p "$run_flag_dir"
fi #判断是否正在部署,如果是则退出
if [ -f "$run_flag_dir/.run" ]; then
echo "程序部署中,请勿重复部署!"
exit
fi #创建.run文件,标识脚本正在部署
touch "$run_flag_dir/.run"
#捕获Ctrl+C,删除.run文件,避免状态不一致
trap "rm -r $run_flag_dir/.run; exit 1" export JAVA_HOME=/data0/usr/jdk1..0_60/ /bin/rm -rf ./deploy_workspace/Test echo "##############################################################"
echo "开始git下载代码。。。"
echo "##############################################################" cd /data0/shell/deploy_workspace
if [ ! -d "Test" ]; then
git clone -b dev git@git.jd.com:AIBDP-Mobile/Test.git
cd Test
git pull
else
cd Test
git pull
fi echo "##############################################################"
echo "开始编译代码。。。"
echo "##############################################################"
cd /data0/shell/deploy_workspace/Test/
#cp -rf face-web/src/main/config/test/* ai-web/src/main/resources/
#/bin/rm -rf mobile-web/src/main/config/test/jss.properties
cp -rf web/src/main/config/test/* web/src/main/resources/
mvn clean package -U -DskipTests -Dmaven.repo.local=/data0/repository
#mvn clean package -DskipTests if [ $? != 0 ]; then
echo "##############################################################"
echo -e 'mvn打包出错了,直接退出部署程序。。。';
echo "##############################################################"
/bin/rm -rf $run_flag_dir/.run;
exit 1
fi echo "##############################################################"
echo "开始停止tomcat。。。"
echo "##############################################################"
sh /data0/usr/apache-tomcat-8.5.24/bin/shutdown.sh
sleep 3
ps -ef| grep "apache-tomcat-8.5.24" | grep -v grep | awk '{print $2}' | xargs kill -9
echo "====tomcat服务已停止成功。。。"
echo "##############################################################" echo "##############################################################"
echo -e "开始部署程序。。。"
echo "##############################################################"
cd /data0/shell/deploy_workspace/Test/
/bin/rm -rf /data0/usr/apache-tomcat-8.5.24/webapps/ROOT*
unzip -q mobile-web/target/ROOT.war -d "/data0/usr/apache-tomcat-8.5.24/webapps/ROOT" echo "##############################################################"
echo -e "开始启动tomcat。。。"
echo "##############################################################"
export CATALINA_OPTS="-Xms1024M -Xmx1024M -server -XX:PermSize=256M"
nohup sh /data0/usr/apache-tomcat-8.5.24/bin/startup.sh & #删除.run文件,部署完毕
/bin/rm -rf $run_flag_dir/.run; echo "##############################################################"
echo -e "开始打印日志。。。"
echo "##############################################################" tail -f "/data0/usr/apache-tomcat-8.5.24/logs/catalina.out"

shell脚本自动化部署服务的更多相关文章

  1. shell脚本自动化部署

    由于公司技术部团队较小,没有专门的运维团队,所以运维工作技术部承包了. 一.纯人工部署是这样的: 1. 本地打包:一般 maven clean package 2. 借助xftp上传到服务器对应目录 ...

  2. linux下使用shell脚本自动化部署项目

    在Java开发项目时经常要把正在开发的项目发布到测试服务器中去测试,一般的话是要把项目先打成war包,然后把war包发布到服务器中,关闭服务器, 最后重新启动服务器,虽然这过程不是很繁琐,但如果是多个 ...

  3. Shell脚本-自动化部署WEB

    #! /bin/ ] then echo "#### 参数有误,\$1:构建号必填" exit fi cd /root/workspace/xinya_erp/xinya_web ...

  4. Shell脚本-自动化部署反向代理、WEB、nfs

    部署nginx反向代理三个web服务,调度算法使用加权轮询(由于物理原因只开启两台服务器) AutoNginxNfsService.sh #/bin/bash systemctl status ngi ...

  5. shell脚本自动化部署Zabbix4.2(修改脚本替换版本)

    #!/bin/bash # 检查操作系统版本,该脚本只能运行在 Centos 7.x 系统上 cat /etc/redhat-release |grep -i centos |grep '7.[[:d ...

  6. shell脚本自动化部署XX的案例(附数组使用)

    #!/bin/sh #Auto Make install MFS Files # cat <<EOF ++++++++++++++++Welcome To Use Auto Install ...

  7. Azure自动化部署服务 (2)

    上一篇文章介绍了如何通过添加用户名和密码的方式实现自动化部署服务中与Azure Subscription的连接. 本文将介绍如何使用证书的方式实现Azure Automation与Azure的Subs ...

  8. Azure自动化部署服务 (1)

    Azure中已经发布了自动化部署服务的PaaS功能. 本文将介绍自动化服务Automation初始化过程. 在Azure Management Portal上左边可以看到Azure的各种服务,其中一项 ...

  9. Shell脚本一键部署——源码编译安装MySQL及自动补全工具

    Shell脚本一键部署--源码编译安装MySQL及自动补全工具 编译安装MySQL 1.软件包 Mysql安装包 将安装包拖至/opt目录下,编辑一个脚本文件,将以下内容复制进去,然后source或者 ...

随机推荐

  1. 浅谈OA系统与Portal门户的区别

    随着社会信息化的发展与进步,OA办公自动化软件打破了传统复杂的办公方式,使各个行业实现了高效的无纸化办公.由此一来OA快速成长为继财务软件.ERP软件之后的第三大管理软件.随着企业信息化系统的不断增多 ...

  2. Android预置Apk方法

    这一套8.0过时了 需要修改pms代码 否则apk会被pms删除掉 因为工作需要,经常要开发和合入系统App,所以在此开篇作为收集和记录Android合入系统应用的方法,以备日后查阅. 一.预置apk ...

  3. IntelliJ IDEA简介及简单操作

    IntelliJ IDEA简介         IDEA 全称IntelliJ IDEA,是用于java语言开发的集成环境(也可用于其他语言),IntelliJ在业界被公认为最好的java开发工具之一 ...

  4. sqlmap 基本应用

    sqlmap 基本应用: sqlmap详细命令: -is-dba 当前用户权限(是否为root权限) -dbs 所有数据库 -current-db 网站当前数据库 -users 所有数据库用户 -cu ...

  5. powerdesigner生成mysql带注释的ER图

    1.安装PowerDesigner的 参考 https://blog.csdn.net/sinat_34104446/article/details/79885141 2配置逆向工程 2.1新建模型p ...

  6. 如何让EasyUI的Tree或者ComboTree节点不显示图标?

    版本:jQuery EasyUI 1.3.2 通过测试,只需把节点的state属性设置为null即可使EasyUI的Tree或者ComboTree控件的节点不显示图标.

  7. 5.3Python数据处理篇之Sympy系列(三)---简化操作

    目录 5.3简化操作 目录 前言 (一)有理数与多项式的简化 1.最简化-simplify() 2.展开-expand() 3.提公因式-factor() 4.合并同类项-ceiling() 5.简化 ...

  8. Windows操作系统分类

    Windows主要有桌面版和服务器版.移动版三个版本 桌面版现在主流是WindowsXP.WindowsVista.Windows7.Windows8.Windows10 其中WindowsXP已经被 ...

  9. github使用个人总结

    1.获取github上面的源码时候,不能获取最新的,因为你的开发工作不一定是最新的要下载历史版本. 2.要使用里面的文件的时候,可以在目录后面url后面添加downloads 这样可以找到封装好的版本 ...

  10. 文本分类实战(十)—— BERT 预训练模型

    1 大纲概述 文本分类这个系列将会有十篇左右,包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMo,BERT等)的文本分类.总共有以下系列: word2vec预训练词向量 te ...