`
zengshaotao
  • 浏览: 753004 次
  • 性别: 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脚本

    springboot自动化发布脚本,shell文件,针对服务器上使用。

    ant自动化发布脚本

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

    自动化中发布脚本

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

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

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

    vs2012网站发布脚本

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

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

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

    PB基于ORCA技术的自动化编译发布脚本

    使用脚本对PB程序进行编译,可以自动从SVN下载最新程序,然后编译,再打包,以及发布,对于PB需要实现自动化部署的同学们可以研究一波, 唯一的缺陷目前没有找到自动申请管理员权限的办法.

    自动化脚本发布过程_SourceTree+Git+jenkins.docx

    自动化脚本发布过程_robot+SourceTree+Git+jenkins.docx

    优酷视频批量上传发布脚本么,解放双手自动化

    一键发布搞定 无需人工值守 模拟人工上传 软件亮点 支持各种mp4视频 支持自由设置间隔时间 支持一次性上传多个视频 软件优势 傻瓜式的操作 高效稳定的用户体验 推广营销利器 使用方法 1.打开软件后注册用户名密码...

    自动化打包发布服务器war包

    我用perl写了一个自动化部署的脚本,可以给中小开发者一些自动化的学习和提示。 首先你使用的是windows server,在本地安装了perl,然后在perl里安装几个包,在服务器上安装ftp server ,打开服务器的telnet端口,...

    SCDM脚本开发入门教程

    该教程主要介绍SCDM脚本开发技术,适合有Python代码开发和SCDM使用基础的人员学习使用 1. SCDM 概述 2. 第一个 Hello,World 程序 3. SCDM 脚本介绍 4. 脚本录制 ...第六步: 保存发布脚本 10. 小结

    Aegisub脚本:petzku的Aegisub自动化脚本

    Aegisub的自动化脚本。 如果有的话,这些可能对排字员最有用。 必修模块 依赖控制 我制作的脚本将使用进行版本控制和依赖性管理。 剧本 通常,这里更有用的脚本可通过DependencyControl下载。 非常小的和非常WIP的...

    jquery-release:发布jQuery项目的自动化脚本

    jQuery项目发布自动化 该脚本可自动执行所有jQuery项目的发布。 它旨在创建项目之间的一致性,并减轻维护单个发布脚本的负担。 创建发布 创建发行版就像克隆该存储库并告诉脚本要使用哪个项目一样简单。 为了确保...

    apk自动打包编译Shell脚本

    安卓apk在CentOS上自动化编译打包发布脚本, 支持阿里ECS和RDS, 详细使用请查看博客

    OFFICE自动化(asp)

    满足日常需要 资源大小: 1.26MB 资源类型: application/x-rar 发布人: nanqingcheng 发布日期: 1天 资源分: 5

    自动批量将阿里云盘文件发布成WordPress文章脚本源码(以RiPro主题为例含付费信息下载地址SEO等自动设置)

    其他主题自动化发布阿里云盘文件,百度网盘文件,思路都是一致的。 以代码文件提供,非UI界面; 本脚本含以下功能: 1)使用RestFulAPI自动发布WP文章; 2)自动重命名阿里云盘文件,增加后缀,移动目录; 3)自动...

    weibo-auto:自动微博发布和评论,http 的 python 脚本

    华中大导航网 - 新浪微博自动化脚本这是一个为华中大导航网设计的自动发布微博,自动给关注者回复微博的Python脚本##搭建方法:授权码获取:打开 ,授权后出现一个空白页面,不要关闭,按 Ctrl+U 查看源代码,找到...

    Jenkins自动化部署,包含通过Publish Over SSH 远程脚本部署

    1、包含jenkins 远程发布到tomcat 容器 2、解决了tomcat发布后需手动重启的问题。 具体通过Publish Over SSH 插件,实现远程文件copy、远程脚本执行、远程tomcat重启,实现真正的全自动化部署

    (shell脚本)生成自动编译无效视图脚本

    该脚本经过本人查询资料得来,主要是在linux下使用shell脚本对oracle数据库中无效的对象进行自动编译。适用于项目发布和数据库迁移后对无效视图进行编译。

    matlab开发-使用自动配置发布

    matlab开发-使用自动配置发布。自动将全功能图形文件(*.fig)插入到已发布的Word文档中。

Global site tag (gtag.js) - Google Analytics