服务器上必须安装了git maven jdk 并且配置好环境变量

实际服务器中可能运行着多个Java进程,所以重新部署的时候需要先停止原来的java进程,写一个按照名称杀死进程的脚本

kill.sh

  1. #!/bin/sh
  2. function PidFind()
  3.  
  4. {
  5.  
  6. PIDCOUNT=`ps -ef | grep $1 | grep -v "grep" | grep -v $0 | awk '{print $2}' | wc -l`;
  7.  
  8. if [ ${PIDCOUNT} -gt 1 ] ; then
  9.  
  10. echo "There are too many process contains name[$1]"
  11.  
  12. elif [ ${PIDCOUNT} -le 0 ] ; then
  13.  
  14. echo "No such process[$1]!"
  15.  
  16. else
  17.  
  18. PID=`ps -ef | grep $1 | grep -v "grep" | grep -v ".sh" | awk '{print $2}'` ;
  19.  
  20. echo "Find the PID of this progress!--- process:$1 PID=[${PID}] ";
  21.  
  22. echo "Kill the process $1 ...";
  23.  
  24. kill -9 ${PID};
  25.  
  26. echo "kill -9 ${PID} $1 done!";
  27.  
  28. fi
  29.  
  30. }
  31.  
  32.  
  33. PidFind $1
  34.  
  35. exit 1

接着就是写重新部署的脚本

redeploy.sh

  1. #杀死原来的java进程
  2. ./kill.sh test.jar
  3. #进入代码文件夹,必须有git管理
  4. cd code/test/
  5. #更新代码
  6. git pull
  7. #清理原来的jar包重新打包
  8. mvn clean install -Dmaven.test.skip=true
  9. cd ~
  10. #删除原来的jar包
  11. rm -rf test-web.jar
  12. cp code/test/test-web/target/test-web.jar test-web.jar
  13. #后台运行
  14. nohup java -agentlib:jdwp=transport=dt_socket,address=8100,server=y,suspend=n -jar test-web.jar > /root/logs/test.log &
  15. #监控日志
  16. tail -f /root/logs/flm-material.log

上述的代码路径 和jar包存放位置根据实际情况修改

在linux写一个shell脚本用maven git自动更新代码并且打包部署的更多相关文章

  1. 写一个shell脚本利用wget抓取股票历史数据

    今天,大数据部老大交给我一项任务——抓取股票历史数据.于是乎,我自行在网上找了一下,发现wget真真是一个非常强大的linux下载工具.我已经被深深震撼到了.下面叙述今天的一些过程,还是比较坎坷的. ...

  2. linux自动更新代码,打包发布

    1.安装svn yum install subversion 2.安装 maven 下载:百度云盘地址为 http://pan.baidu.com/s/1nuKQGjv 解压 tar -zxvf ap ...

  3. ubuntu中写一个shell脚本的过程

    gedit hello.sh ,然后输入 #!/bin/bash echo "Hello world!" chmod +x hello.sh ./hello.sh

  4. 编写一个shell脚本来编译并运行java代码

    概述 编译和运行java分别要用到javac命令和java命令,虽然可以使用IDE(比如eclipse,InteliJ,NetBean...),按一下快捷键就可以实现编译并运行,但是,在之前还要配置一 ...

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

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

  6. Linux python3安装/shell脚本/if/循环/函数

    python3安装 安装过程 安装包: wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgztar -xvf Python-3.7 ...

  7. linux定时执行shell脚本

    写一个shell脚本,定时执行简单示例 很多时候我们有希望服务器定时去运行一个脚本来触发一个操作,比如说定时去备份服务器数据.数据库数据等 不适合人工经常做的一些操作这里简单说下 Shell俗称壳,类 ...

  8. 向大家分享一个shell脚本的坑

    打算在跳板机上写一个shell脚本,批量检查远程服务器上的main进程是否在健康运行中. 先找出其中一台远程机器,查看main进程运行情况 [root@two002 tmp]# ps -ef|grep ...

  9. 写一个python脚本监控在linux中的进程

    在虚拟机中安装Linux中的CentOS7系统 https://baijiahao.baidu.com/s?id=1597320700700593557&wfr=spider&for= ...

随机推荐

  1. jquery.serializejson.min.js的妙用

    关于这个jquery.serializejson.min.js插件来看,他是转json的一个非常简单好用的插件. 前端在处理含有大量数据提交的表单时,除了使用Form直接提交刷新页面之外,经常碰到的需 ...

  2. web储存的初级运用

    <html> <head> <meta charset="utf-8"> <title>web存储</title>< ...

  3. LLVM使用其他Pass的结果

    之前的工作一直集中在clang中,最近有点空闲时间,又重新熟悉了一下Pass的书写过程.(参考LLVM CookBook和http://llvm.org/docs/WritingAnLLVMPass. ...

  4. Phoenix的jdbc封装

    一.Phoenix版本 <dependency> <groupId>org.apache.phoenix</groupId> <artifactId>p ...

  5. 为何一线城市的企业更愿意选择 Spring Cloud?

    最近公司正在搭建微服务框架,处于小白的我,赶紧借书,上网,实操的学习了一下,下面是一些自己的入门的总结: 目录: 一.怎么理解Spring Cloud? 一.Spring Cloud 的优势在哪? 一 ...

  6. 使用JPA完成增删改查操作

    基础的增删改查操作如下: package cn.itheima.test; import cn.itcast.domain.Customer; import cn.itcast.utils.JpaUt ...

  7. gulp die('click').live('click' composer

    gulp  die('click').live('click' composer packagist.org https://getcomposer.org/ 下载后 php composer.pha ...

  8. python 获取导入模块的文件路径

    接触到项目上有人写好的模块进行了导入,想查看模块的具体内容是如何实现的,需要找到模块的源文件. 本博文介绍两种查找模块文件路径方法: 方法一: #!/usr/bin/python # -*- codi ...

  9. 使用PHP 格式化时间

    date 用法: date(格式,[时间]); 如果没有时间参数,则使用当前时间. 格式是一个字符串,其中以下字符有特殊意义: U 替换成从一个起始时间1970年1月1日以来的秒数 <?php ...

  10. 使用Fiddler工具在夜神模拟器或手机上抓包

    下载安装Fiddler 地址:https://www.telerik.com/download/fiddler-everywhere Fiddler端设置 Tools>Options>Co ...