`
zengshaotao
  • 浏览: 786874 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

自动化发布脚本

 
阅读更多

#!/bin/bash

 

# Date/Time

LOG_DATE='date "+%Y-%m-%d"'

LOG_TIME='date "+%H:%M:%S"'

CDATE=$(date "+%Y%m%d")

CTIME=$(date "+%H%M%S")

 

#jenkins目录

APP_BASE="/home/base"

DEPLOY_VERSION="-0.0.1-SNAPSHOT.jar"

#日志文件

LOG_FILE=$APP_BASE"/logs"

#LOCK文件

LOCK_FILE="$APP_BASE/deploy_jar.lock"

init() {

    create_dir $LOG_FILE

    create_dir $APP_BASE

}

create_dir() {

   if [ ! -d $1 ]; then

       mkdir -p $1

   fi

}

shell_lock(){

    touch ${LOCK_FILE}

}

shell_unlock(){

    rm -f ${LOCK_FILE}

}

write_log(){

    LOGINFO=$1

    echo "`eval ${LOG_DATE}` `eval ${LOG_TIME}` : ${LOGINFO}"

}

jar_stop(){

  write_log "Stop  project:$1 port:$2 Doing......"

  pid=$(netstat -anp|grep $2|awk '{printf $7}'|cut -d/ -f1)

  if [ ! -n "$pid" ]; then  

      write_log "$1 is not runing..."

  else  

      kill -9 $pid

      write_log "Stop project:$1 port:$2 pid:$pid  Done"

  fi

}

#如果新的jar传输失败,重启之前的jar包

jar_start(){

  write_log "Start jar:$1 Doing"

  if [ -f "$APP_BASE/$1$DEPLOY_VERSION" ];then

echo " come into deploy..."

nohup java -jar "$APP_BASE/"$1*.jar --server.port=$2 --spring.profiles.active=$3 >>$LOG_FILE"/$1".log 2 >&1 &

  else

echo " not right ....."

  fi

}

 

#入口 调用方式:sh /home/msa/deploy_jar.sh union-base 9004 prod

main(){

    if [ -f ${LOCK_FILE} ];then

        write_log "Deploy is running"  && exit;

    fi

        PROJECT=$1

        PORT=$2

ACTIVE=$3

        init $PROJECT $PORT;

        shell_lock;

        jar_stop $PROJECT $PORT;

        jar_start $PROJECT $PORT $ACTIVE;

        shell_unlock;

}

main $1 $2 $3

 

分享到:
评论

相关推荐

    sringboot项目自动化发布shell脚本

    在这个场景中,我们有两个关键文件:`runjar.sh`和`build.sh`,它们是实现Spring Boot应用自动化发布的shell脚本。 首先,让我们详细了解一下`build.sh`脚本。这个脚本通常用于构建项目,它可能包含了编译源代码、...

    ant自动化发布脚本

    利用ant,自动化发布工程。具体过程包括:备份之前发布的工程,从svn checkout工程,编译工程,打包工程,关闭web服务器,删除已发布在web服务器的工程,复制打包的工程到web服务器,解压工程,启动web服务器。

    自动化中发布脚本

    自动化发布脚本,特别适用于jenkins等自动化发布平台!

    ios自动化打包脚本

    其中,“iOS自动化打包脚本”是一种非常实用且高效的手段,它能够帮助开发者实现一键式批量生成不同渠道版本的应用程序包(ipa文件),极大地简化了发布流程。 #### 二、脚本功能解析 此脚本主要实现了以下几个...

    自动化发布部署方案.v1.2.docx

    根据实际需求编写自动化发布脚本,例如用于触发Jenkins任务、执行代码部署、服务重启等操作的Shell脚本。 通过上述步骤和技术实践,可以构建出一套完整的自动化发布部署方案,有效地提升了软件发布的质量和效率,...

    自动化脚本打包苹果iap的Shell.zip

    标题中的“自动化脚本打包苹果iap的Shell.zip”指的是一个用于iOS应用自动化打包的Shell脚本,这个脚本特别针对苹果的In-App Purchase(IAP)服务进行了优化。IAP是苹果应用内购买功能,允许用户在应用程序内部购买...

    Jmeter自动化测试脚本.zip

    《JMeter自动化测试脚本深度解析》 JMeter,全称Apache JMeter,是一款由Apache组织开发的开源、跨平台的性能测试工具,主要用于对Web应用程序进行负载和压力测试。在【标题】"Jmeter自动化测试脚本.zip"中,我们...

    jenkins自动化部署脚本.zip

    这个“jenkins自动化部署脚本.zip”压缩包文件包含了实现Jenkins自动化部署的相关脚本,通过这些脚本,可以极大地提高开发团队的工作效率,减少人为错误,并确保代码的快速迭代和稳定发布。 1. **Jenkins 概述**: ...

    photoscan自动化python脚本、批处理、网络任务、分布式处理

    在给定的压缩包文件中,我们看到与Photoscan自动化处理相关的多个Python脚本和配置文件,这表明用户可能正在构建一个自动化的工作流程,以提高处理大量图像的效率。以下是对这些文件和相关知识点的详细解释: 1. **...

    通过Jenkins自动化发布java微服务脚本

    通过Jenkins自动化发布java微服务脚本

    Xcode-shell自动化打包脚本

    "Xcode-shell自动化打包脚本"就是这样一个解决方案,它利用shell脚本自动化执行Xcode的编译、签名和打包过程。 shell脚本是Unix或Linux系统中的一种命令语言,允许用户编写一系列命令并将其作为一个程序运行。在iOS...

    vs2012网站发布脚本

    可用于自动化发布. 功能: 1. 从SVN上下载最新代码. 逻辑是:如果首次启动, 会创建文件夹, 从SVN上获取全部代码. 如果不是首次启动则只更新代码 2. 使用msbuild.exe 发布代码到指定的文件夹 3. 删除web.config文件...

    基于Python与Shell的SVN项目自动化发布与重启脚本设计源码

    该方案为基于Python与Shell编写的SVN项目自动化发布与重启脚本,包含38个文件,涵盖16个Shell脚本、6个GZIP压缩文件、3个Python脚本、3个配置文件、2个BZIP2压缩文件、2个ZIP压缩文件、1个授权许可文件、1个INI文件...

    实战jenkins多分支流水线 自动化部署 jenkinsfile脚本

    本文将深入探讨如何通过Jenkinsfile脚本来实现多分支流水线的自动化部署。 首先,我们要了解Jenkinsfile。Jenkinsfile是一个文本文件,它定义了Jenkins的工作流或者说是“Pipeline”。这个文件通常放在版本控制系统...

    一种基于PYTHON脚本语言的自动化测试系统.pdf

    以现代工业生产为例,提出了在VISA(Virtual Instrument Software Architecture,虚拟仪器软件结构)框架下利用Python脚本语言构建自动化测试系统的方案。该系统以工控机作为控制核心,使用符合VISA标准的测试仪器,...

    初学者级别的java自动化发布脚本

    工作中,最近要将包括我自己的服务在内的多个服务迁移到一个服务器上,然后要求数据库使用达梦。 这个达梦7不知道怎么回事,偶尔会出现自己断开连接,然后自行恢复的事情,这就会导致我们的服务全挂,数据库恢复连接...

    jenkins自动化脚本.zip

    5. **自动化脚本**:创建自动化脚本可以集成到运维流程中,例如,使用 Ansible、Chef 或 Puppet 这样的配置管理工具,或者编写 shell 脚本,通过定时任务(如 cron)来定时执行。 6. **安全性和权限管理**:为了...

    python脚本实现自动化打包.zip

    4. **Fastlane**:Fastlane是一款强大的iOS和Android自动化部署工具,它能简化构建、测试和发布应用的过程。如果项目使用了Fastlane,你需要了解`fastlane`命令行接口和它的各个工具,如`gym`用于构建iOS应用,`...

    按键精灵-办公自动化脚本-屏幕定时截图器-工具源码

    总的来说,这个“屏幕定时截图器”项目展示了按键精灵在办公自动化领域的应用潜力,同时也展现了软件开发的基本流程,包括界面设计、逻辑编程、系统调用和打包发布等。对于想要学习自动化脚本编程的初学者,这是一个...

    kubernetes 自动化安装脚本任何版本均可

    本资源提供的“kubernetes自动化安装脚本任何版本均可”是一个适用于初学者和专业人士的实用工具,简化了Kubernetes集群的部署过程。以下是关于这个脚本及其相关知识点的详细说明: 1. **Kubernetes简介**: ...

Global site tag (gtag.js) - Google Analytics