shell脚本自动化部署

!/bin/bash#export PATH=$PATH:/export/maven/binrun_flag_dir="/data0/shell/deploy_workspace/Test"
if [ ! -d "$run_flag_dir" ]; thenmkdir -p "$run_flag_dir"
fi#判断是否正在部署,如果是则退出
if [ -f "$run_flag_dir/.run" ]; thenecho "程序部署中,请勿重复部署!"exit 1
fi#创建.run文件,标识脚本正在部署
touch "$run_flag_dir/.run"
#捕获Ctrl+C,删除.run文件,避免状态不一致
trap "rm -r $run_flag_dir/.run; exit 1" 2export JAVA_HOME=/data0/usr/jdk1.8.0_60//bin/rm -rf ./deploy_workspace/Testecho "##############################################################"
echo "开始git下载代码。。。"
echo "##############################################################"cd /data0/shell/deploy_workspace
if [ ! -d "Test" ]; thengit clone -b dev git@git.jd.com:AIBDP-Mobile/Test.gitcd Testgit pull
elsecd Testgit pull
fiecho "##############################################################"
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  -DskipTestsif [ $? != 0 ]; thenecho "##############################################################"echo -e 'mvn打包出错了,直接退出部署程序。。。';echo "##############################################################"/bin/rm -rf $run_flag_dir/.run;exit 1
fiecho "##############################################################"
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"

View Code

转载于:https://www.cnblogs.com/zgzf/p/10525146.html

shell脚本自动化部署服务相关推荐

  1. SHELL脚本自动化部署MFS分布式文件系统

    前言:在我们运维中,最常见的文件存储系统大概就是NFS了,但是随着网站压力不断增加,NFS渐渐不能满足企业数据增长需求,有木有自动扩展.高效.部署.实施方便快捷的分布式存储供我们使用呢?那我们来看一下 ...

  2. docker $PWD路径_Docker安装Jenkins+Shell脚本自动化部署项目

    本文同名博客老炮说Java:https://www.laopaojava.com/,每天更新Spring/SpringMvc/SpringBoot/实战项目等文章资料 Sentinel+Nacos 是 ...

  3. centos7 ssr一键脚本_RHEL7(Centos7)下使用shell脚本一键部署服务

    今天配置服务觉得有些麻烦,想着写一个能一键配置nfs服务端的shell脚本,当然在安装之前需要配置一个yum源,所以我一并将这些功能写在了一个shell脚本里. 脚本如下: #author:Roya ...

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

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

  5. shell脚本 一键部署 Lnmp 及社区论坛 服务架构

    shell脚本 一键部署 Lnmp 一键部署 Lnmp 一键部署 注:亲,记得把所需要的软件包,先放到/opt目录中:以及该机子的内存大小.核数先设置好! #!/bin/bash #先配置好yum e ...

  6. 通过shell脚本自动化量产SD启动卡

    通过shell脚本自动化量产SD启动卡 首先感谢米联客提供的高质量的脚本文件,我这里根据他的脚本文件稍作修改,使用更加便捷,量产SD卡,使用脚本操作,方便快捷.是针对大批量定制SD卡的一种自动化操作. ...

  7. shell脚本一键部署LNMP

    前言 使用shell脚本一键部署LNMP需要的安装包 nginx-1.15.9.tar.gz mysql-boost-5.7.20.tar.gz php-7.1.10.tar.bz2 Discuz_X ...

  8. shell半自动化部署standalone的spark分布式集群

    背景:以前每次配置hadoop和spark都要各种输入配置,太烦了.这次花了点时间,自己做了个shell来辅助自己的spark部署方式.cdh的hadoop没有部署,以后再部署,hadoop和spar ...

  9. Nginx学习笔记3:Shell脚本检测Nginx服务状态

    前言 nginx 服务启动后,我们需要对其服务状态进行监控,今天学习过程中了解到一段非常有用的小脚本,不仅可以监控Nginx,也可以用来监控其他服务 脚本 A=`ps -C nginx –no-hea ...

最新文章

  1. ApacheCN 数据科学/人工智能/机器学习知识树 2019.2
  2. LeetCode 23 合并K个升序链表
  3. VTK:受约束的 Delaunay 2D用法实战
  4. LeetCode题库第2题 两数相加
  5. SAP CRM Business Partner API的buffer工作原理
  6. synchronized的实现原理
  7. js深度复制一个对象使用JSON.stringify是最好的办法吗
  8. 写二叉树程序时为什么总是报运行时错误_二叉树:一入递归深似海,从此offer是路人...
  9. Finalshell软件安装使用
  10. 【Spring-tx】spring事务和mybatis的联系
  11. protoc安装使用
  12. BES ANC降噪耳机在量产中发现的噪声
  13. 接入网+承载网+核心网
  14. linux shell 统计词频,shell之词频统计
  15. linux vim m,Linux vi(m)用法 (转)
  16. 【沙龙干货】Swift是花拳绣腿吗?开发语言与职业生涯如何选择?
  17. IE6-IE11兼容性问题列表及解决办法总结
  18. 英文美文欣赏之《小王子》
  19. CSAPP_Chapter1
  20. 数值分析 三次样条插值及实现

热门文章

  1. 制作liveusb实现centos6.2全自动无人职守安装
  2. mastered skills
  3. [原创]java使用JDBC向MySQL数据库批次插入10W条数据测试效率
  4. Android应用安全开发之浅谈加密算法的坑
  5. LAMP编译安装,并搭建discuz
  6. job 做 ha 问题?
  7. DDMS的使用、内存溢出的调试和模拟器的启动命令参数
  8. 一小段代码:父类和子类
  9. Android杂谈---获取手机屏幕大小
  10. Android stutdio2.2 启动模拟器出现“/dev/kvm is not found.”解决方法