面向刚接触linux环境的新手,老鸟勿拍~

部署环境及配置: tomcat9,maven3.3.9,git 1.12.0

##定义一些变量,将需要用到的 source目录,项目目录,名称等定义变量,方便使用
buildpkg=/mnt/xxx-tomcat-9.0.0.M4/gitsourcepkg/ #git拉取源码存放目录
buildpkgName=xxx-0.0.1-SNAPSHOT.war #maven打包后生成的包名
targetpath=/mnt/xxx-tomcat-9.0.0.M4/gitsourcepkg/xxx/target/tbkmark-0.0.1-SNAPSHOT.war #maven打包后包存放的位置
projectName=/mnt/xxx-tomcat-9.0.0.M4/gitsourcepkg/xxx #git拉下来的代码项目路径,进入到该目录下执行 mvn package可执行maven打包
tomcatName=xxx #tomcat的名字,方便同一个环境下分多个tomcat的时候查询指定tomcat的进程
projectPath=/mnt/xxx-tomcat-9.0.0.M4/webapps/ROOT #项目在tomcat中存放的路径
startpath=/mnt/xxx-tomcat-9.0.0.M4/bin/startup.sh #tomcat启动脚本
logpath=/mnt/xxx-tomcat-9.0.0.M4/logs/catalina.out #日志路径
echo "##### start build xxx进入build目录,清理旧数据 拉取项目#####"
cd $buildpkg
rm -rf *
git clone git链接
echo "##### git pull ok git上拉取项目完毕后,进入项目目录中进行打包,并且跳过测试代码#####"
cd $projectName
mvn package -Dmaven.test.skip=true
echo "##### maven pkg ok 打包成功后 查看指定tomcat进程,并且杀掉,然后将tomcat下存放项目的目录清空,将新打包的项目包复制到tomcat下指定目录 并解压#####"
ps -ef | grep tomcat | grep $tomcatName | awk '{print $2}'|xargs kill -9
cd $projectPath
rm -rf *
cp $targetpath $projectPath
jar -xvf $buildpkgName
echo "##### kill tomcat and cp pkg to root ok !!! 复制生产环境专用的配置文件,启动tomcat 等待5秒后查看日志 #####"
\cp /application.properties /mnt/xxx-tomcat-9.0.0.M4/webapps/ROOT/WEB-INF/classes #\cp 表示复制的时候如果目标目录下存在同名文件,进行强制覆盖,不再提醒 Y/N
sh $startpath
sleep 5s
tailf -n 500 $logpath

 SVN篇 从部署服务器执行脚本,将项目部署到生产服务器

projectName=项目名称
targetMathineme=项目名称
targetMathine=目标服务器ssh链接路径
targetTomcatWebAppsDir="~/xxx-tomcat-8.0.35/webapps"
svnPath=svn地址
checkoutDir="checkout"
targetWarName=war包名
mvn scm:bootstrap -DconnectionUrl=scm:svn:$svnPath -DcheckoutDirectory=$checkoutDir -Dgoals=package -Dprofiles=skipTest,dev -DmavenHome=""
if [ -f "./$checkoutDir/target/$targetWarName.war" ]; then
echo "File xxx Generate success!"
scp $checkoutDir/target/$targetWarName.war $targetMathine:$targetTomcatWebAppsDir/$targetWarName.war.tmp
ssh $targetMathine "mv $targetTomcatWebAppsDir/$targetWarName.war.tmp $targetTomcatWebAppsDir/$targetWarName.war"
fi
echo "xxx.war publish success. "

  

Linux CentOS6.8 项目部署脚本实现的更多相关文章

  1. linux系统tomcat项目部署和tomcat访问日志

    一.只用ip地址访问 先把端口号改成80,然后用 <Host name="localhost"  appBase="webapps"    137     ...

  2. Linux操作系统与项目部署

    Linux操作系统与项目部署 注意:本版块会涉及到操作系统相关知识. 现在,几乎所有智能设备都有一个自己的操作系统,比如我们的家用个人电脑,基本都是预装Windows操作系统,我们的手机也有Andro ...

  3. 常用linux命令(项目部署)

    centos 图形 命令行 界面切换 如果在图形界面下,按:Ctrl+Alt+F2进入如下命令行界面 -------------- 看当前目录的路径: pwd ................... ...

  4. Linux中kettle自动化部署脚本

    自己写的一个自动化在Linux中部署kettle的脚本,包括一些遇到的问题在脚本中都有涉及. kettle是官网最新版本pdi-ce-6.1.0.1-196.zip 目前最新版本下载地址:https: ...

  5. Linux下分布式项目部署环境搭建与使用(druid-1.0.25.jar)数据库连接加密

    一.JDK安装 1.执行命令:cd Downloads/ 2.上 传:jdk-8u111-linux-x64.tar.gz 到Downloads 3.执行命令:tar -zxvf jdk-8u111- ...

  6. linux系统上项目部署

    步骤:(特别注意:虚拟机安装的一般是32位的操作系统,jdk也必须使用32位的)查看虚拟机版本:sudo uname --m i686 //表示是32位 x86_64 // 表示是64位 查看是否已经 ...

  7. 最小化安装linux CentOS-6.6后 部署fastdfs +下载地址 很干很干的干货

    参考:http://blog.itpub.net/7734666/viewspace-1292485/ 安装一些必要软件 yum -y install wget gcc perl mkdir ~/zy ...

  8. 写了个关于tomcat项目部署脚本 shell

    #!/bin/bash tomcat_project_path=" /server/tomcat" tomcat_cp_path="/root/tools/apache- ...

  9. linux上jar项目启动脚本

    ---------------启动:start.sh #!/bin/bashcd `dirname $0`BIN_DIR=`pwd`cd ..DEPLOY_DIR=`pwd`CONF_DIR=$DEP ...

随机推荐

  1. 在 Tomcat 中自定义 404 页面(简单配置)

      打开 Tomcat 中的 web.xml,(tomcat/conf/web.xml) 添加如下代码: <error-page>  <error-code>404</e ...

  2. mysqlbinlog相关

    1.输出binlog到文件mysqlbinlog --base64-output=decode-rows -v /home/mysql/binlog/binlog.000011>/tmp/aa. ...

  3. JS设计模式(6)命令模式

    什么是命令模式? 定义:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化. 主要解决:在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录. ...

  4. win7下Oracle库impdp导入dmp

    第一步:创建备份文件存储目录 create or replace directory back_file as 'D:\app\yangxf\back_or_memery_file'; create ...

  5. 伪分布式安装core-site.xml和hdfs-site.xml配置文件

    hadoop的伪分布式安装流程如下所示: 其中core-site.xml和hdfs-site.xml是两个很重要的配置文件. core-site.xml <configuration> & ...

  6. Webpack与其他打包工具的区别

    webpack是一个模块化加载器兼打包工具,它同时支持AMD.CMD等加载规范.与其他模块化加载器相比,它有这些优势: 1.代码分割 webpack支持两种依赖加载:同步和异步.同步的依赖会在编译时直 ...

  7. FZOJ P2109 【卡德加的兔子】

    题目描述 卡德加喜欢养兔子.他在达拉然的下水道里放了 $N$ 个兔笼(编号从 $1$ 到 $N$),里面养着他从德拉诺带来的兔子.它们的繁殖遵循斐波那契数列的规律:刚开始时,笼子里有一对刚出生的兔子. ...

  8. Docker镜像Push到DockerHub

    1.自己整理的容器首先通过commit做成本地镜像 docker commit -a "Cristin" -m "测试开发平台Jenkins" 281eef85 ...

  9. [数据结构]P1.3 栈 Stack

    * 注: 本文/本系列谢绝转载,如有转载,本人有权利追究相应责任. 栈是一种先进后出的结构(FILO),常见的操作有:push 入栈.pop删除栈顶元素并返回.peek 查看栈顶元素 与其他线性结构一 ...

  10. English trip EM2-LP-4B At School Teacher:Russell

    课上内容(Lesson) Where is Loki a student?  Loki is in Meten, BaobaoStreet, Chengdu. What is he studying? ...