zoukankan      html  css  js  c++  java
  • Shell按日期备份、Git拉取代码打包部署

    #!/bin/bash
    
    # jar文件位置
    jarPath="/data/api"
    # 拉取源代码存放的位置
    originCode="/data/api/originCode"
    # 备份jar文件位置
    backPath="/data/api/back"
    # 按时间区分
    data=`date +"%Y-%m-%d-%H:%M:%S"`
    # 项目端口
    port=8081
    
    echo "=====================创建备份文件路径============"
    if [ ! -d ${backPath} ];then
      mkdir -p ${backPath}
    else
      echo "备份文件路径已存在"
    fi;
    
    echo "=====================备份jar====================="
    cd ${jarPath}
    mv api-0.1.jar ${backPath}/api-0.1.${data}.jar
    echo "=====================备份jar成功================="
    
    echo "=====================创建源代码目录,如果不存在==="
    if [ ! -d ${originCode} ];then
      mkdir -p ${originCode}
    else
      echo "源代码目录已存在"
    fi;
    
    ## 从git拉取代码
    echo "=====================拉取新代码=================="
    cd ${originCode}
    git pull
    echo "=====================拉取成功====================="
    
    ## 构筑项目
    echo "=====================打包中======================="
    cd ${originCode}
    mvn clean install -Dmaven.test.skip=true
    echo "=====================打包完成====================="
    
    echo "=====================移动jar包到jarPath目录下====="
    cd ${originCode}/api/target
    mv api-0.1.jar ${jarPath}
    
    echo "=====================停止项目,准备启动...========="
    cd ${jarPath}
    #根据端口号查询对应的pid pid
    =$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }'); #杀掉对应的进程,如果pid不存在,则不执行 if [ -n "$pid" ]; then kill -9 $pid; fi sleep 1s echo "=====================启动项目=====================" java -jar .jar api-0.1.jar >/opt/logs/api/catalina.out 2>&1 &
  • 相关阅读:
    Unity3D使用OpenFileDialog后崩溃
    JS定时器
    如果把我剥得一文不名丢在沙漠的中央,只要一行驼队经过———我就可以重建整个商业帝国
    软件开发架构
    C#对象序列化与反序列化
    我的作品们
    fread 不能读取最后一个数据块
    for循环中的i++和++i
    MOS管不能关断的原因!!!
    AD16 快速原理图封装导出
  • 原文地址:https://www.cnblogs.com/wangfajun/p/14755196.html
Copyright © 2011-2022 走看看