主体上看别人的脚本,然后和开发协商,做出符合自己的生产脚本................................

脚本一:

#!/bin/bash
DATE=`date +%F-%H-%M`

PROJECT='HBKeNong-1.0-SNAPSHOT'
PROJECT_TARGET='HBKeNong'

ROOTDIR='/usr/local'
TOMCAT_HOME='/usr/local/test-tomcat-01'

#停止tomcat服务
echo '停止test-tomcat-01'
sh ${TOMCAT_HOME}/bin/shutdown.sh

cp ${ROOTDIR}/test_env_update_war/${PROJECT}.war ${ROOTDIR}/test_war_backup/test-${PROJECT}-${DATE}.war

rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}.war
rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}

mv ${ROOTDIR}/test_env_update_war/${PROJECT}.war ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}.war

#启动tomcat服务
echo '启动test-tomcat-01'
sh ${TOMCAT_HOME}/bin/startup.sh

脚本二:

#这里需要加上JAVA_HOME的配置,虽然在本地的环境变量中已经配置了,但是远程调用的时候,还是需要配上的,否则执行脚本出错。
export JAVA_HOME=$HOME/java/jdk1..0_171
tomcat_home=/home/fangjl/tomcat/apache-tomcat-
#【3.1】 停止tomcat变量
SHUTDOWN=$tomcat_home/bin/shutdown.sh
#【3.2】 启动tomcat变量
STARTTOMCAT=$tomcat_home/bin/startup.sh
#【3.3】 删除项目文件 如果是局部发布这句不需要 这只是正对jenkins整个war发布
/webapps/report*

#得到进程ID 这里也可以简写 如果你ps -ef|grep 项目名称 可以带出PID 那么可以直接写成这样
#之前为什么写那么长 是因为在用jenkins调用脚本的时候,也会带出jenkins调用脚本的那个进程 这样kill - 就会killjenkins进程 导致一建发布中断
#所以这里一直写到了conf文件夹目录
#如果不需要用到jenkins可以用下面简洁版 得出PID命令
#PID=`ps -ef |grep 项目名称  |grep -v grep | awk '{print $2}'`
#【3.4】 获取进程ID
PID=`/conf |grep -v grep | awk '{print $2}'`
if [ ! "$PID" ];then # 这里判断TOMCAT进程是否存在
    echo "进程不存在"
else
    echo "进程存在 杀死进程PID$PID"
     $PID
fi

#【3.5】启动项目
$STARTTOMCAT   

自己创建一个工程项目:

步骤如下

设置git

设置mvn

自己在生产环境使用的脚本

#!/bin/sh
#执行shell脚本
.XX.XX.:/home/XX.war

#到目标服务器47.XX.XX.182推送正式XX.war包服务(执行下面脚本即可)
.XX.XX. /home/wallet_start.sh

启动脚本:

[root@iZj6c6g9pt4wd4xt1xi69zZ home]# cat wallet_start.sh
#!/bin/bash
DATE=`date +%F-%H-%M`

PROJECT_TARGET='wallet'
BACKUP_DIR='/backup'
TOMCAT_HOME='/home/cat_wallet'

#停止tomcat服务

echo '开始正式更新,祝您一次性更新成功.......................'
echo '停止wallet测试项目'
sh ${TOMCAT_HOME}/bin/shutdown.sh

echo  '正在备份war包'
cp ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}.war ${BACKUP_DIR}/cat${PROJECT}-${DATE}.war

echo  '正在删除原始war包信息'
rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}.war
rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}

echo '将war包移动到项目目录'
mv /home/${PROJECT_TARGET}.war  ${TOMCAT_HOME}/webapps/${PROJECT_TARGET}.war

#启动tomcat服务
echo '启动wallet项目'
sh ${TOMCAT_HOME}/bin/startup.sh

参考博客

https://blog.csdn.net/fjl19900121/article/details/80901997

Jeninks远程部署war包的更多相关文章

  1. 三种远程部署war包检测

    简介 远程部署漏洞属于服务器.中间件配置问题,攻击者可通过远程部署漏洞获取系统权限,远程部署漏洞经常出现在Tomcat.Jboss.Weblogic等web容器之上. 0x01 ### tomcat部 ...

  2. 使用Jenkins远程部署war包到tomcat container

    Jenkins首先使用maven将源代码进行编译打包,之后需要将war包传送到tomcat服务器上进行部署. 来看一下Jenkins的基本配置,首先需要安装插件"Deploy to cont ...

  3. jenkins+maven+svn构建项目,及远程部署war包到tomcat上

    要使用jenkins构建项目,当然要使用jenkins了,我使用的war版本的jenkins jenkins的官网 http://jenkins-ci.org/ 点击latest下载,但是可能因为天朝 ...

  4. tomcat远程部署war包,显示连接被重置

    在tomcat 目录: /opt/apache-tomcat-9.0.13/webapps/manager/WEB-INF/web.xml 下修改: <multipart-config> ...

  5. 持续集成之Jenkins自动部署war包到远程服务器

    一.无war包链接的情况 无war包链接时,需先下载war包到本地,然后执行: ---------------------------------------------以下部分为转载-------- ...

  6. 如何在阿里云上部署war包到tomcat服务器

    一. 准备工作:xshell和xftp 首先我们得确保,xshell能够远程连接阿里云ECS,xftp能够保证windows和linux之间的文件传输(当然也可以选择FileZilla,但xftp感觉 ...

  7. tomcat本地部署war包的方式

    最近学习java,在本地tomcat部署时,主要采取以下方式: 一.本地构建生成war包 在本地项目中的terminal下,使用命令 “mvn clean install”或 先执行“mvn clea ...

  8. Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包

    Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包 >>>>>>>>>>>& ...

  9. Docker容器Tomcat部署war包

    在docker容器中使用tomcat部署war包主要包括四个步骤,创建tomcat容器.上传war包到容器.重启容器.访问应用. 1.创建tomcat容器 使用docker run  -d --nam ...

随机推荐

  1. UOJ #2 【NOI2014】起床困难综合症

    这道题我们设两个bitset(N和Y) \(N_i = cal(i,0) , Y_i=cal(i,1)\) cal(i) 即第i位经过题目中的计算后所得出来的值 然后贪心.倒序循环i,考虑第i位如何决 ...

  2. Luogu P3031 高于中位数

    定义序列\(x_i = f([H_i >=x])\;\;\;\;其中f(0) = -1,f(1) = 1\),那么区间[i,j]满足条件当且仅当sum_j-sum_{i-1} > 0,即s ...

  3. Window Jdk配置(win7/win10都可以)

    在计算机-右键属性-高级系统设置-环境标量-系统变量下进行如下配置: 1.新建->变量名:JAVA_HOME变量值:D:\Java\jdk1.6.0_12(这只是我的JDK安装路径) 2.编辑- ...

  4. UVA 10273

    我是用暴力过的,虽然网上说刘汝佳出的这道题考的是堆,我不太懂,..用暴力时间复杂度高一些,但是一样能过 所要注意的就是周期问题,因为只要同时存在某一天超过一头牛产奶量最小,就不会杀牛,而每头牛的周期和 ...

  5. 频率类组件-认证规图分析-JWT认证-drf-jwt插件

    频率类源码 # 1)APIView的dispath方法中的 self.initial(request, *args, **kwargs) 点进去 # 2)self.check_throttles(re ...

  6. vector内部的实现1

    写vector的内部方法 #include<vector> using std::vector; //写一个动态内存 class CA{ int a; public: CA(int i){ ...

  7. Google Guava入门教程

    以下资料整理自网络 一.Google Guava入门介绍 引言 Guava 工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] .缓存 [cachi ...

  8. Openstack 使用Centos官方镜像创建实例记录

    Openstack 使用Centos官方镜像创建实例记录 准备centos镜像 官方地址:http://cloud.centos.org/centos/7/images 可以看到有各种版本的镜像,我在 ...

  9. LeetCode——853.车队

    N 辆车沿着一条车道驶向位于 target 英里之外的共同目的地. 每辆车 i 以恒定的速度 speed[i] (英里/小时),从初始位置 position[i] (英里) 沿车道驶向目的地. 一辆车 ...

  10. C#匿名委托,匿名函数,lambda表达式

    一.类型.变量.实例之间的关系. 类型>变量>实例 类型可以创建变量,实体类可以创建实例,实例可以存储在变量里. 二.委托使用过程: 1.定义委托(写好签名): 2.创建委托变量: 3.给 ...