1、在mac上直接安装Jenkins,下载地址 :

2、安装插件:系统管理--》插件管理

publish over ssh

Exec command:

cd /usr/local/apache-tomcat-7.0.81/bin/
sh jenkins.sh 8080 hc-adapter /usr/local/jdk1.7

这里与服务器上tomcat中的脚步发生互动了。

jenkins.sh 负责服务器上tomcat的关闭和启动;

具体代码:

#!/bin/bash
#Time
log_time=`date +[%Y-%m-%d]%H:%M:%S` ###manual_properties###
tomcat_port=$1
war_Dir=/opt/jenkins
war_Name=$2
debug_port=$3
###manual_properties### echo "********************************** ${log_time} *************************************"
echo "updating server environment start"
export JAVA_HOME=$3
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar/
sleep 3
echo "updating server environment end"
#build check funcation
echo "check tomcat status..."
check_tomcat_status(){
netstat -ant|grep ${tomcat_port} > /dev/null
t=$?
if [ $t -eq 0 ]; then
echo "tomcat is running....port is ${tomcat_port}"
echo "shutdown tomcat....."
echo ">>>>>>>shutdown tomcat begin<<<<<<<<"
sh shutdown.sh
echo ">>>>>>>shutdown tomcat end <<<<<<<<"
sleep 15
elif [ $t -ne 0 ];then
echo "tomcat is poweroff"
fi
} #check tomcat status invoke function
check_tomcat_status export TOMCAT_HOME=/usr/local/tomcat8
#echo "-------Input process name first"
## 从控制台读取要杀的进程名(read the value from the console)
#read input1
## 获取pid (get the pid)
#PID=$(ps x|grep $input1|grep -v grep|awk '{printf $1}')
PID=$(ps x|grep $TOMCAT_HOME|grep -v grep|awk '{printf $1}')
if [ $? -eq 0 ]; then
echo "---------process id(进程id):$PID"
echo "-------begin to kill the pid(开始杀进程)"
kill -9 $PID
if [ $? -eq 0 ];then
# echo "----------kill $input1 success(成功杀死进程)"
echo "----------kill $TOMCAT_HOME success(成功杀死进程)"
else
echo "----------kill $input1 fail(杀死进程失败,可能该进程不存在)"
fi
else
## 实际测试:进程不存在时不会走这个else(in fact,this situation will not happen)
echo "---------process $input1 not exit(该进程不存在)"
exit
fi
## 睡眠3秒,确保进程已停止(sleep 3s make sure the process has killed)
echo "-------wait for closing the tomcat(等待tomcat被关闭)"
sleep 3s echo "-------begain to start the tomcat service (开始启动tomcat服务)"
$TOMCAT_HOME/bin/startup.sh && tail -f $TOMCAT_HOME/logs/catalina.out #transfer application package
echo "-------------- begin transfer war package to tomcat webapps -------------------" if [ -z $war_Dir ];then
echo "Folder ${war_Dir} is empty.please check war package in this folder!"
exit 1
else
echo "Find ${war_Dir} exist war package ${war_Name}"
echo "deleteing old package ${war_Name} in tomcat"
rm -rf ../webapps/${war_Name}*
rm -rf ../work/
echo "start transfer ${war_Name} to tomcat"
mv ${war_Dir}/${war_Name}.war ../webapps/
sleep 10
fi
echo "-------------- transfer war package to tomcat webapps end -------------------"
echo " >>>>>>> rebooting tomcat begin <<<<<<<<"
sh startup.sh
echo " >>>>>>> rebooting tomcat end <<<<<<<<"
echo "the log you can read in canalina.out"
echo "************************ deploy war package into container Successlly **********************************"

  

jenkins发版svn的更多相关文章

  1. 用node.js写一个jenkins发版脚本

    背景 每次到网页里手动发版有点烦,写个脚本来提高开发效率. CFG 在 jenkins 设置里获取 API TOKEN. 把 host 和账号密码拼接起来就可以通过鉴权. const token = ...

  2. jenkins发版脚本更新

    jenkins 项目名中明确了 是jar tar.gz war包研发需要提供  项目名-地点-环境(研发.测试.生产)-应用项目名称(admin)-包格式(jar\war\gz) deployment ...

  3. Jenkins日常运维笔记-重启数据覆盖问题、迁移、基于java代码发版(maven构建)

    之前在公司机房部署了一套jenkins环境,现需要迁移至IDC机房服务器上,迁移过程中记录了一些细节:1)jenkins默认的主目录放在当前用户家目录路径下的.jenkins目录中.如jenkins使 ...

  4. jenkins中通过git发版操作记录

    之前说到的jenkins自动化构建发版是通过svn方式,今天这里介绍下通过git方式发本的操作记录. 一.不管是通过svn发版还是git发版,都要首先下载svn或git插件.登陆jenkins,依次点 ...

  5. svn代码发版的脚本分享

    背景:开发将其代码放到svn里面,如何将修改后存放到svn里的代码发布到线上?简单做法:写个shell脚本,用于代码发版.比如开发的代码存放svn的路径是:svn://112.168.19.120/h ...

  6. Jenkins获取发版人的人名

    目录 一.简介 二.自由风格使用 三.pipeline使用 脚本式 声明式 一.简介 Jenkins在构建记录中,是可以看到谁点的构建的,但pipeline中的全局变量,默认是不支持获取当前构建任务的 ...

  7. CICD自动化发版系统设计简介

    第一篇. 版本迭代是每一个互联网公司必须经历的,尤其是中小型公司,相信不少人踩到过很多坑.接下来的一系列文章将介绍我设计的自动化发版系统! 很多公司没有把配置独立出去,代码的构建.发版通过一个Jenk ...

  8. java生产环境增量发版陷阱【原】

    前言 在生产环境,我们为了降低发版风险,一般都只做增量发布,不做全量发布. 除非项目只有一到两人开发,对时间线和代码脉络结构一清二楚,才可全量发布. 然而增量发布也是有一定隐藏陷阱在里面的,以下就是笔 ...

  9. CI/CD自动化发版系统设计简介

    转载自:https://www.cnblogs.com/wellful/archive/2004/01/13/10604151.html 版本迭代是每一个互联网公司必须经历的,尤其是中小型公司,相信不 ...

随机推荐

  1. python 三目运算符

    格式: true_res if condition else false_res Meto 1: Meto 2: >>> x = 2 >>> x+1 if x!=1 ...

  2. 转 Pycharm及python安装详细教程

    转 : http://blog.csdn.net/qq_29883591/article/details/52664478 首先我们来安装Python 1.首先进入网站下载:点击打开链接(或自己输入网 ...

  3. Lodop背景图无图片时显示放大叉号问题

    正常情况下,如果指定图片路径中,图片不存在或指定错误的路径,会因为找不到图片显示叉号,Lodop背景图如果设置了背景图宽度高度控制,显示的叉号也会被相应的放大,形成放大的模糊的图案,看起来就像是黑色边 ...

  4. JSON in SQL Server 2016

    JSON functions in SQL Server enable you to analyze and query JSON data, transform JSON to relational ...

  5. 包装类接受string 会自动将数字类型string转换成对应得包装类型

  6. Nginx 当上游服务器返回失败时的处理办法

    陶辉95课 Syntax: proxy_next_upstream error | timeout | invalid_header | http_500 | http_502 | http_503  ...

  7. DRF 版本 认证

    DRF的版本 版本控制是做什么用的, 我们为什么要用 首先我们要知道我们的版本是干嘛用的呢大家都知道我们开发项目是有多个版本的 当我们项目越来越更新~版本就越来越多我们不可能新的版本出了~以前旧的版本 ...

  8. Civil 3D 2017本地化中VBA程序移植到2018版中

    中国本地化包简直就是一块鸡肋, 但对于某些朋友来说还真离不了: 可惜中国本地化包的推出一直滞后, 在最新版软件出来后1年多, 本地化还不一定能够出来, 即使出来了, 也只能是购买了速博服务的用户才能得 ...

  9. BZOJ2565最长双回文串——manacher

    题目描述 顺序和逆序读起来完全一样的串叫做回文串.比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同).输入长度为n的串S,求S的最长双回文子串T,即可将T分为两 ...

  10. 学习Android过程中遇到的问题及解决方法——网络请求

    在学习Android的网络连接时遇到崩溃或异常(出现的问题就这两个,但是不稳定)的问题,先上代码,看看哪里错了(答案在文末) activity_main.xml: <?xml version=& ...