jenkins发版svn
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的更多相关文章
- 用node.js写一个jenkins发版脚本
背景 每次到网页里手动发版有点烦,写个脚本来提高开发效率. CFG 在 jenkins 设置里获取 API TOKEN. 把 host 和账号密码拼接起来就可以通过鉴权. const token = ...
- jenkins发版脚本更新
jenkins 项目名中明确了 是jar tar.gz war包研发需要提供 项目名-地点-环境(研发.测试.生产)-应用项目名称(admin)-包格式(jar\war\gz) deployment ...
- Jenkins日常运维笔记-重启数据覆盖问题、迁移、基于java代码发版(maven构建)
之前在公司机房部署了一套jenkins环境,现需要迁移至IDC机房服务器上,迁移过程中记录了一些细节:1)jenkins默认的主目录放在当前用户家目录路径下的.jenkins目录中.如jenkins使 ...
- jenkins中通过git发版操作记录
之前说到的jenkins自动化构建发版是通过svn方式,今天这里介绍下通过git方式发本的操作记录. 一.不管是通过svn发版还是git发版,都要首先下载svn或git插件.登陆jenkins,依次点 ...
- svn代码发版的脚本分享
背景:开发将其代码放到svn里面,如何将修改后存放到svn里的代码发布到线上?简单做法:写个shell脚本,用于代码发版.比如开发的代码存放svn的路径是:svn://112.168.19.120/h ...
- Jenkins获取发版人的人名
目录 一.简介 二.自由风格使用 三.pipeline使用 脚本式 声明式 一.简介 Jenkins在构建记录中,是可以看到谁点的构建的,但pipeline中的全局变量,默认是不支持获取当前构建任务的 ...
- CICD自动化发版系统设计简介
第一篇. 版本迭代是每一个互联网公司必须经历的,尤其是中小型公司,相信不少人踩到过很多坑.接下来的一系列文章将介绍我设计的自动化发版系统! 很多公司没有把配置独立出去,代码的构建.发版通过一个Jenk ...
- java生产环境增量发版陷阱【原】
前言 在生产环境,我们为了降低发版风险,一般都只做增量发布,不做全量发布. 除非项目只有一到两人开发,对时间线和代码脉络结构一清二楚,才可全量发布. 然而增量发布也是有一定隐藏陷阱在里面的,以下就是笔 ...
- CI/CD自动化发版系统设计简介
转载自:https://www.cnblogs.com/wellful/archive/2004/01/13/10604151.html 版本迭代是每一个互联网公司必须经历的,尤其是中小型公司,相信不 ...
随机推荐
- 小米Note3 MIUI9可以用的XPosed框架
资源来自论坛里的:http://www.miui.com/thread-6449305-1-1.html 首先需要刷入TWRP,资源在这个帖子里:http://www.miui.com/thread- ...
- oracle ceil函数
ceil和floor函数在一些业务数据的时候,有时还是很有用的. ceil(n) 取大于等于数值n的最小整数: floor(n)取小于等于数值n的最大整数 如下例子 SQL> select ce ...
- endnote格式
endnote插入参考文献后的对齐方式和缩进空格 听语音 | 浏览:4780 | 更新:2016-11-28 20:46 1 2 3 4 5 6 7 分步阅读 1.endnote 导入到word参考文 ...
- 集成Javascript Logging on MVC or Core
ASP.NET Core provides us a rich Logging APIs which have a set of logger providers including: Console ...
- 微信web开发者工具 移动调试
1 下载 微信web开发者工具:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1455784140 下载一个自己能用的版本: 2 ...
- UOJ274 [清华集训2016] 温暖会指引我们前行 【LCT】【最大生成树】
题目分析: 差评,最大生成树裸题.hack数据还卡常. 代码: #include<bits/stdc++.h> using namespace std; ; struct LCT{ ],d ...
- BZOJ1012 最大数maxnumber
单调栈的妙处!! 刚看到这题差点写个splay..但是后来看到询问范围的只是后L个数,因为当有一个数新进来且大于之前的数时,那之前的数全都没有用了,满足这种性质的序列可用单调栈维护 栈维护下标(因为要 ...
- os x && linux 文件传输基础命令
一.从服务器下载文件到本机 1.修改文件所属 由于只能下载文件所属为自己的文件,所以要做修改文件所属的操作. chown hudelei /opt/logs/tomcat/app/tomcat_stk ...
- Jeesite 自定义api接口 404 访问不到页面
1.类上面要有路径 @RequestMapping(value = "${adminPath}/sys/good") adminPath 值可以在 jeesite.properti ...
- Shell 字符截取命令 Cut
1.Cut 命令 # cut [选项] 文件名 选项 : -f 列号 提取第几列 -d 分隔符,按照指定分隔符分割列 2.例子 cut -f 1,4 -d ":" /etc/p ...