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. Android ION内存分配

    The Android ION memory allocator 英文原文 ION heaps ION设计的目标 为了避免内存碎片化,或者为一些有着特殊内存需求的硬件,比如GPUs.display c ...

  2. Docker创建JIRA 7.2.4中文破解版

    目录 目录 1.介绍 1.1.什么是JIRA? 2.JIRA的官网在哪里? 3.如何下载安装? 4.对JIRA进行配置 4.1.打开浏览器:http://localhost:20012 4.2.JIR ...

  3. Linux 环境下 Git 安装与基本配置

    索引: 目录索引 参看代码 GitHub: git.txt 一.Linux (DeepinOS) 环境 1.安装 sudo apt-get update sudo apt-get install gi ...

  4. MySQL慢查询日志释疑总结

      之前写了一篇"MySQL慢查询日志总结",总结了一些MySQL慢查询日志常用的相关知识,这里总结一下在工作当中遇到关于MySQL慢查询日志的相关细节问题,有些是释疑或自己有疑惑 ...

  5. C# Math的说有函数 以及说明

    Math.Abs(x)                                      x绝对值 Math.Acos(x)                                  ...

  6. 微信小程序支付证书及SSL证书使用

    小程序使用微信支付包括:电脑管理控制台导入证书->修改代码为搜索证书->授权IIS使用证书->设置TSL加密级别为1.2 描述: 1.通常调用微信生成订单接口的时候,使用的证书都是直 ...

  7. 《生命》第五集:Birds (鸟类)

    看了前四集之后意犹未尽,今天终于有时间来看第五集了. 本集讲的是鸟类,一个在恐龙开始繁荣的时代才开始有的物种. 鸟类和其他动物最不同的地方,就是羽毛,能隔热,保暖,最重要的是:能帮助他们飞行. 在秘鲁 ...

  8. pc端移动端拖拽实现

    #div1 { width: 100px; height: 100px; background: red; position: absolute; } html <div id="di ...

  9. 修改json对象的每一个值

    function fun1(obj){ var names={}; /*for in 可以用于数组或者对象*/ for(var name in obj){ names[name] = obj[name ...

  10. html基础和CSS选择器

    一.html简单基础 什么是HTML HTML 是用来描述网页的一种语言. HTML 指的是超文本标记语言: HyperText Markup Language HTML 不是一种编程语言,而是一种标 ...