#!/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
相关推荐
在这个场景中,我们有两个关键文件:`runjar.sh`和`build.sh`,它们是实现Spring Boot应用自动化发布的shell脚本。 首先,让我们详细了解一下`build.sh`脚本。这个脚本通常用于构建项目,它可能包含了编译源代码、...
利用ant,自动化发布工程。具体过程包括:备份之前发布的工程,从svn checkout工程,编译工程,打包工程,关闭web服务器,删除已发布在web服务器的工程,复制打包的工程到web服务器,解压工程,启动web服务器。
自动化发布脚本,特别适用于jenkins等自动化发布平台!
其中,“iOS自动化打包脚本”是一种非常实用且高效的手段,它能够帮助开发者实现一键式批量生成不同渠道版本的应用程序包(ipa文件),极大地简化了发布流程。 #### 二、脚本功能解析 此脚本主要实现了以下几个...
根据实际需求编写自动化发布脚本,例如用于触发Jenkins任务、执行代码部署、服务重启等操作的Shell脚本。 通过上述步骤和技术实践,可以构建出一套完整的自动化发布部署方案,有效地提升了软件发布的质量和效率,...
标题中的“自动化脚本打包苹果iap的Shell.zip”指的是一个用于iOS应用自动化打包的Shell脚本,这个脚本特别针对苹果的In-App Purchase(IAP)服务进行了优化。IAP是苹果应用内购买功能,允许用户在应用程序内部购买...
《JMeter自动化测试脚本深度解析》 JMeter,全称Apache JMeter,是一款由Apache组织开发的开源、跨平台的性能测试工具,主要用于对Web应用程序进行负载和压力测试。在【标题】"Jmeter自动化测试脚本.zip"中,我们...
这个“jenkins自动化部署脚本.zip”压缩包文件包含了实现Jenkins自动化部署的相关脚本,通过这些脚本,可以极大地提高开发团队的工作效率,减少人为错误,并确保代码的快速迭代和稳定发布。 1. **Jenkins 概述**: ...
在给定的压缩包文件中,我们看到与Photoscan自动化处理相关的多个Python脚本和配置文件,这表明用户可能正在构建一个自动化的工作流程,以提高处理大量图像的效率。以下是对这些文件和相关知识点的详细解释: 1. **...
通过Jenkins自动化发布java微服务脚本
"Xcode-shell自动化打包脚本"就是这样一个解决方案,它利用shell脚本自动化执行Xcode的编译、签名和打包过程。 shell脚本是Unix或Linux系统中的一种命令语言,允许用户编写一系列命令并将其作为一个程序运行。在iOS...
可用于自动化发布. 功能: 1. 从SVN上下载最新代码. 逻辑是:如果首次启动, 会创建文件夹, 从SVN上获取全部代码. 如果不是首次启动则只更新代码 2. 使用msbuild.exe 发布代码到指定的文件夹 3. 删除web.config文件...
该方案为基于Python与Shell编写的SVN项目自动化发布与重启脚本,包含38个文件,涵盖16个Shell脚本、6个GZIP压缩文件、3个Python脚本、3个配置文件、2个BZIP2压缩文件、2个ZIP压缩文件、1个授权许可文件、1个INI文件...
本文将深入探讨如何通过Jenkinsfile脚本来实现多分支流水线的自动化部署。 首先,我们要了解Jenkinsfile。Jenkinsfile是一个文本文件,它定义了Jenkins的工作流或者说是“Pipeline”。这个文件通常放在版本控制系统...
以现代工业生产为例,提出了在VISA(Virtual Instrument Software Architecture,虚拟仪器软件结构)框架下利用Python脚本语言构建自动化测试系统的方案。该系统以工控机作为控制核心,使用符合VISA标准的测试仪器,...
工作中,最近要将包括我自己的服务在内的多个服务迁移到一个服务器上,然后要求数据库使用达梦。 这个达梦7不知道怎么回事,偶尔会出现自己断开连接,然后自行恢复的事情,这就会导致我们的服务全挂,数据库恢复连接...
5. **自动化脚本**:创建自动化脚本可以集成到运维流程中,例如,使用 Ansible、Chef 或 Puppet 这样的配置管理工具,或者编写 shell 脚本,通过定时任务(如 cron)来定时执行。 6. **安全性和权限管理**:为了...
4. **Fastlane**:Fastlane是一款强大的iOS和Android自动化部署工具,它能简化构建、测试和发布应用的过程。如果项目使用了Fastlane,你需要了解`fastlane`命令行接口和它的各个工具,如`gym`用于构建iOS应用,`...
总的来说,这个“屏幕定时截图器”项目展示了按键精灵在办公自动化领域的应用潜力,同时也展现了软件开发的基本流程,包括界面设计、逻辑编程、系统调用和打包发布等。对于想要学习自动化脚本编程的初学者,这是一个...
本资源提供的“kubernetes自动化安装脚本任何版本均可”是一个适用于初学者和专业人士的实用工具,简化了Kubernetes集群的部署过程。以下是关于这个脚本及其相关知识点的详细说明: 1. **Kubernetes简介**: ...