#!/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
相关推荐
springboot自动化发布脚本,shell文件,针对服务器上使用。
利用ant,自动化发布工程。具体过程包括:备份之前发布的工程,从svn checkout工程,编译工程,打包工程,关闭web服务器,删除已发布在web服务器的工程,复制打包的工程到web服务器,解压工程,启动web服务器。
自动化发布脚本,特别适用于jenkins等自动化发布平台!
通过Jenkins自动化发布java微服务脚本
可用于自动化发布. 功能: 1. 从SVN上下载最新代码. 逻辑是:如果首次启动, 会创建文件夹, 从SVN上获取全部代码. 如果不是首次启动则只更新代码 2. 使用msbuild.exe 发布代码到指定的文件夹 3. 删除web.config文件...
工作中,最近要将包括我自己的服务在内的多个服务迁移到一个服务器上,然后要求数据库使用达梦。 这个达梦7不知道怎么回事,偶尔会出现自己断开连接,然后自行恢复的事情,这就会导致我们的服务全挂,数据库恢复连接...
使用脚本对PB程序进行编译,可以自动从SVN下载最新程序,然后编译,再打包,以及发布,对于PB需要实现自动化部署的同学们可以研究一波, 唯一的缺陷目前没有找到自动申请管理员权限的办法.
自动化脚本发布过程_robot+SourceTree+Git+jenkins.docx
一键发布搞定 无需人工值守 模拟人工上传 软件亮点 支持各种mp4视频 支持自由设置间隔时间 支持一次性上传多个视频 软件优势 傻瓜式的操作 高效稳定的用户体验 推广营销利器 使用方法 1.打开软件后注册用户名密码...
我用perl写了一个自动化部署的脚本,可以给中小开发者一些自动化的学习和提示。 首先你使用的是windows server,在本地安装了perl,然后在perl里安装几个包,在服务器上安装ftp server ,打开服务器的telnet端口,...
该教程主要介绍SCDM脚本开发技术,适合有Python代码开发和SCDM使用基础的人员学习使用 1. SCDM 概述 2. 第一个 Hello,World 程序 3. SCDM 脚本介绍 4. 脚本录制 ...第六步: 保存发布脚本 10. 小结
Aegisub的自动化脚本。 如果有的话,这些可能对排字员最有用。 必修模块 依赖控制 我制作的脚本将使用进行版本控制和依赖性管理。 剧本 通常,这里更有用的脚本可通过DependencyControl下载。 非常小的和非常WIP的...
jQuery项目发布自动化 该脚本可自动执行所有jQuery项目的发布。 它旨在创建项目之间的一致性,并减轻维护单个发布脚本的负担。 创建发布 创建发行版就像克隆该存储库并告诉脚本要使用哪个项目一样简单。 为了确保...
安卓apk在CentOS上自动化编译打包发布脚本, 支持阿里ECS和RDS, 详细使用请查看博客
满足日常需要 资源大小: 1.26MB 资源类型: application/x-rar 发布人: nanqingcheng 发布日期: 1天 资源分: 5
其他主题自动化发布阿里云盘文件,百度网盘文件,思路都是一致的。 以代码文件提供,非UI界面; 本脚本含以下功能: 1)使用RestFulAPI自动发布WP文章; 2)自动重命名阿里云盘文件,增加后缀,移动目录; 3)自动...
华中大导航网 - 新浪微博自动化脚本这是一个为华中大导航网设计的自动发布微博,自动给关注者回复微博的Python脚本##搭建方法:授权码获取:打开 ,授权后出现一个空白页面,不要关闭,按 Ctrl+U 查看源代码,找到...
1、包含jenkins 远程发布到tomcat 容器 2、解决了tomcat发布后需手动重启的问题。 具体通过Publish Over SSH 插件,实现远程文件copy、远程脚本执行、远程tomcat重启,实现真正的全自动化部署
该脚本经过本人查询资料得来,主要是在linux下使用shell脚本对oracle数据库中无效的对象进行自动编译。适用于项目发布和数据库迁移后对无效视图进行编译。
matlab开发-使用自动配置发布。自动将全功能图形文件(*.fig)插入到已发布的Word文档中。