Linux CentOS6.8 项目部署脚本实现
面向刚接触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 项目部署脚本实现的更多相关文章
- linux系统tomcat项目部署和tomcat访问日志
一.只用ip地址访问 先把端口号改成80,然后用 <Host name="localhost" appBase="webapps" 137 ...
- Linux操作系统与项目部署
Linux操作系统与项目部署 注意:本版块会涉及到操作系统相关知识. 现在,几乎所有智能设备都有一个自己的操作系统,比如我们的家用个人电脑,基本都是预装Windows操作系统,我们的手机也有Andro ...
- 常用linux命令(项目部署)
centos 图形 命令行 界面切换 如果在图形界面下,按:Ctrl+Alt+F2进入如下命令行界面 -------------- 看当前目录的路径: pwd ................... ...
- Linux中kettle自动化部署脚本
自己写的一个自动化在Linux中部署kettle的脚本,包括一些遇到的问题在脚本中都有涉及. kettle是官网最新版本pdi-ce-6.1.0.1-196.zip 目前最新版本下载地址:https: ...
- Linux下分布式项目部署环境搭建与使用(druid-1.0.25.jar)数据库连接加密
一.JDK安装 1.执行命令:cd Downloads/ 2.上 传:jdk-8u111-linux-x64.tar.gz 到Downloads 3.执行命令:tar -zxvf jdk-8u111- ...
- linux系统上项目部署
步骤:(特别注意:虚拟机安装的一般是32位的操作系统,jdk也必须使用32位的)查看虚拟机版本:sudo uname --m i686 //表示是32位 x86_64 // 表示是64位 查看是否已经 ...
- 最小化安装linux CentOS-6.6后 部署fastdfs +下载地址 很干很干的干货
参考:http://blog.itpub.net/7734666/viewspace-1292485/ 安装一些必要软件 yum -y install wget gcc perl mkdir ~/zy ...
- 写了个关于tomcat项目部署脚本 shell
#!/bin/bash tomcat_project_path=" /server/tomcat" tomcat_cp_path="/root/tools/apache- ...
- linux上jar项目启动脚本
---------------启动:start.sh #!/bin/bashcd `dirname $0`BIN_DIR=`pwd`cd ..DEPLOY_DIR=`pwd`CONF_DIR=$DEP ...
随机推荐
- MariaDB glare cluster简介
MariaDB MariaDB 是由原来 MySQL 的作者Michael Widenius创办的公司所开发的免费开源的数据库服务器,MariaDB是同一MySQL版本的二进制替代品, 当前最新版本1 ...
- C# 生成 COM控件
C#编写COM组件 软件:Microsoft VisualStudio 2010 1.新建一个类库项目 2.将Class1.cs改为我们想要的名字(例如:MyClass.cs) 问是否同时给类改名,确 ...
- 绑定到外部验证服务LDAP、配置 autofs
题1:您的系统需要按照以下要求绑定到这个服务上:验证服务器的基本 DN 是: dc=xxxx,dc=xxxx,dc=xxxx. 帐户信息和验证信息都是由 LDAP 提供的.连 接 需 要 使 用 证 ...
- CSS 文件引入
CSS 文件引入 <html> <head> <!-- link标签引用其他文件.rel="stylesheet" 引用css.href=" ...
- Python 简单soket例子
简单的soket例子 Python 2.0 客户端服务端传输 1.可发字符串,可发字节 bys类型 Python 3.0 客户端服务端传输 1.只能发bys,比特流的类型. 2.bys类型只能接收 ...
- 2的n次方用c语言怎么表示
C语言有函数,需要头文件#include <math.h>用pow(2,n)就可以了! double result = pow(2,n);
- ArchLinux 无密码Samba 配置
安装上迅雷后就必须把硬盘挂上去开个Samba,然后边下电影边看,这就是一个Nas了. 开搞! pacman -S samba 安装samba,然后进入/etc/samba/目录 vim smb.con ...
- EmailHelper
注:个人邮箱发送时需要将邮箱密码设置为邮件授权码 邮件发送帮助类一: public class EmailHelper { /// <summary> /// 发送邮件 /// </ ...
- 组合,多态与多态性,封装以及property装饰器介绍
一:组合: 什么是组合:组合指的是某一个对象拥有一个属性,该属性的值是另外一个类的对象. 为何要用组合:通过为某一个对象添加属性(属性的值是另外一个类的对象)的方式,可以间接地将两个类关联/整合/组合 ...
- word->excel数据处理
朋友发来一个word文件,里面的数据没有分割,想分割后放到excel统计 通常遇到这种数据,首先想到每一列数据有没有什么特征 类似这种数据,一种办法是按位数截取,mid函数,或者按第一次出现数字的方式 ...