1.本地发布脚本 publish.sh

#!/bin/sh
currentDay=`date +%Y%m%d`
currentTime=`date +%Y%m%d%H%M%S`
tomcat1=/data/app/tomcat-contract
confDir=/root/sh/config
svnDir=/data/app/git/contract
#echo ">>>>>>>>>>>>>>>>>>>>>>>>备份版本"
#mkdir -p /data/app/tomcat-contract/backup/$currentDay
#cp $svnDir/Bonade-Contract-Service/target/Bonade-Contract-Service.war /data/app/tomcat-contract/backup/20190109/"Bonade-Contract-Service_$currentTime".war
#cp $svnDir/Bonade-Contract-Web/target/Bonade-Contract-Web.war /data/app/tomcat-contract/backup/20190109/"Bonade-Contract-Web_$currentTime".war
echo ">>>>>>>>>>>>>>>>>>>>>>>>更新代码"
cd $svnDir
git fetch origin dev
git checkout dev
git pull
sleep 10s
echo ">>>>>>>>>>>>>>>>>>>>>>>>编译打包"
mvn -U clean install -DskipTests -X
#mvn -u clean install
#sleep 120s
echo ">>>>>>>>>>>>>>>>>>>>>>>>停止tomcat1"
kill -9 `cat /data/app/tomcat-contract/temp/contract.pid`
#sleep 5s
echo ">>>>>>>>>>>>>>>>>>>>>>>>删除tomcat1下的文件"
rm -rf $tomcat1/webapps/*
echo ">>>>>>>>>>>>>>>>>>>>>>>>发布tomcat1"
unzip $svnDir/Bonade-Contract-Service/target/Bonade-Contract-Service.war -d $tomcat1/webapps/Bonade-Contract-Service
unzip $svnDir/Bonade-Contract-Web/target/Bonade-Contract-Web.war -d $tomcat1/webapps/Bonade-Contract-Web
#清除多余的日志包
rm -f $tomcat1/webapps/Bonade-Contract-Service/WEB-INF/lib/slf4j-log4j12-1.7.5.jar
echo "copy 配置文件"
mkdir $tomcat1/webapps/Bonade-Contract-Web/WEB-INF/classes/config
\cp -rf $confDir/system.properties $tomcat1/webapps/Bonade-Contract-Web/WEB-INF/classes/config
\cp -rf $confDir/system.properties $tomcat1/webapps/Bonade-Contract-Service/WEB-INF/classes/config
\cp -rf $confDir/jdbc.properties $tomcat1/webapps/Bonade-Contract-Service/WEB-INF/classes/config
#sleep 20s
echo "启动服务"
sh $tomcat1/bin/startup.sh

  

2.远程发布

#sftp上传应用包
sftp root@ip地址 << !
echo 上传service
put /data/app/git/contract/Bonade-Contract-Service/target/Bonade-Contract-Service.war /data/app/tomcat-contract/backup/
echo 上传web
put /data/app/git/contract/Bonade-Contract-Web/target/Bonade-Contract-Web.war /data/app/tomcat-contract/backup/
echo 上传结束
!
#远程shell脚本执行发布
echo 执行发布
ssh root@129.204.115.46 "sh ~/sh/publish.sh"
echo 发布完成

3.可以修改上面git 拉取分支,将分支参数化 ,这里如果改成在windows下使用doc命令传参就用 %1 获取参数。

git fetch origin $1
git checkout $1
git pull

  执行  sh publish.sh dev 即可拉取dev分支, sh publish.sh test 拉取test分支

sh publish.sh dev

  

linux 服务发布脚本升级,远程发布,指定拉取远程dev,test等分支代码的更多相关文章

  1. git拉取远程分支并创建本地分支

    本地分支推送至远程 git checkout local_branch git push origin local_branch:remote_branch 一.查看远程分支 使用如下Git命令查看所 ...

  2. pycharm连接远程服务器(拉取版本)

    pycharm连接远程服务器(拉取版本) 有这篇教程是因为,博主有两个办公地点,想着在办公地点A上传代码到服务器并调试,并在B时候可以拉取这份代码,并进行调试.因此有这篇拉取版本的博客,之前还有上传版 ...

  3. git拉取远程分支并创建本地分支和Git中从远程的分支获取最新的版本到本地

    git拉取远程分支并创建本地分支 一.查看远程分支 使用如下Git命令查看所有远程分支: git branch -r 二.拉取远程分支并创建本地分支 方法一 使用如下命令: git checkout ...

  4. git 拉取远程分支到本地

    步骤: 1.新建一个空文件,文件名为hhhh 2.初始化 git init 3.自己要与origin master建立连接(下划线为远程仓库链接) git remote add origin git@ ...

  5. git 拉取远程代码

    git 拉取远程代码 || 利用vscode编辑器自带了git,可在ctrl+~打开控制台拉取代码,非常好用哦~在实际项目开发过程中,往往是已经存在远程项目了,我们定义的需求是只需要简单的操作git, ...

  6. git拉取远程分支到本地

    git拉取远程分支到本地 一.查看远程分支 -- 查看远程分支 git branch -r 二.拉取远程分支并创建本地分支 -- 采用此种方法建立的本地分支会和远程分支建立映射关系. git chec ...

  7. docker每次都重新拉取远程镜像的问题

    将镜像上传到远程之后,dockerfile按理来说只需一次拉取远程镜像就好了,之后每次都是使用第一次拉取的远程镜像. 但是实际上出现的问题是:dockerfile每次都从远程拉取镜像,浪费了资源和时间 ...

  8. Git直接拉取远程分支

    用Git,一直有个疑惑,可不可以不拉取远程Origin主干,我直接pull一个分支下来 今天想了一下,找到了一个办法 本地分支关联 // 0.新建一个文件夹,然后初始化git git init // ...

  9. git拉取远程分支

    查看本地所有分支列表: git branch -a 查看远程所有分支列表: git branch -r 拉取远程分支(使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checko ...

随机推荐

  1. tiny6410采用sd卡烧写的问题

    今天想用32G的SD卡来烧写tiny6410的uboot但是失败了,换了一张4G的卡就可以了, 还有sd卡启动的uboot使用tftp命令是有问题的

  2. vmstat性能分析介绍

    vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最 ...

  3. PHP函数------parse_ini_file()

    1.parse_ini_file()函数用于解析一个配置文件,并以数组的形式返回其中的设置. 举例说明:group.ini文件,文件内容如下: 0 = "Hleducation" ...

  4. Linux 其它知识点

    1:import sys  ----导入路径     sys.path.append("/hom") ----添加一个hom的路径 2:重新导入模块 from imp import ...

  5. vue-i18n安装配置,运行

    需求:根据浏览器语言自动切换语言 1.安装vue-i18n, yarn安装 $ yarn add vue-i18n npm安装 $ npm install vue-i18n 2.导入语言包 src下创 ...

  6. Linux TCP并发请求溺出 调优

    TCP并发请求溺出 调优:系统开启某个监听端口后,当多个TCP请求连接监听端后,会把多个请求交给backlog的默认监听队列由socket server一并处理,backlog有自己的队列长度默认12 ...

  7. 一次聊天引发的思考--java并发包实战

    一次聊天,谈到了死锁的解决.可重入锁等等,突然发现这些离自己很远,只有一些读书时的概念涌入脑海,但各自的应用场景怎么都无法想出.痛定思痛,决定看看concurrent包里涉及并发的类及各自的应用场景. ...

  8. CPU高速缓存

    目录 Code: 物理结构: 缓存行Cache Line 伪共享: 概念: 解决办法: 内存屏障: 理解: 参考: Code: public class Main { static long[][] ...

  9. java servlet练习测试

    步骤: 0.首先创建web project,工程名:test_servlet 1.编写Servlet,TestServlet.java文件内容: package com.ouyang.servlet; ...

  10. _quest_random

    -- 随机任务-- 可以实现玩家随机获取任务-- 小技巧:需要控制物品法防,在_function_menu表配置物品indexID为28 `comment`备注 `questId`任务ID `chan ...