文档章节

maven+svn 半自动脚本部署

ganlm
 ganlm
发布于 2014/11/17 16:57
字数 370
阅读 29
收藏 0
点赞 0
评论 0
#!/bin/sh
start=`date +%s`

#svn server address
svn=svn://svn.***/abc/web/trunk/

#checkout src
target=/home/maven/abc/

#svn uname
uname=n***e

#svn pwd
pwd=n***i

#
warpath=/home/maven/abc/target

#param svn version
version=$1

# deploy target ip address
ip=$2

#参数判断
if   [   "$#"   !=   "2"   ]
   then
         echo   usage:deploy.sh 0  192.0.0.1
    exit   1
fi

#ip判断
CheckIPAddr()
{
        echo $1|grep "^[0-9]\{1,3\}\.\([0-9]\{1,3\}\.\)\{2\}[0-9]\{1,3\}$" ;
        #IP地址必须为全数字
        if [ $? -ne 0 ]
        then
                echo ip address error
                exit 1
        fi
        ipaddr=$1
        a=`echo $ipaddr|awk -F . '{print $1}'`  #以"."分隔,取出每个列的值
        b=`echo $ipaddr|awk -F . '{print $2}'`
        c=`echo $ipaddr|awk -F . '{print $3}'`
        d=`echo $ipaddr|awk -F . '{print $4}'`
        for num in $a $b $c $d
        do
                if [ $num -gt 255 ] || [ $num -lt 0 ]    #每个数值必须在0-255之间
                then   
                      return 1
                fi
        done
                return 0
}


CheckIPAddr $ip

#svn版本检查
echo "[INRO]----------------Check svn ----------------------------------------"
if echo $version | egrep -q '^[0-9]+$'; then
        if [ $version -eq 0 ]; then
                svn update $svn $target --username $uname --password $pwd
        else
                svn update -r$version  $svn $target --username $uname --password $pwd
        fi

else
    echo svn version \"$version\" is not a number
    exit
fi
echo "[INRO]----------------Check svn done -----------------------------------"

echo "[INRO]----------------mvn package --------------------------------------"
mvn package -Dmaven.test.skip=true
echo "[INRO]----------------mvn package do------------------------------------"

curdate=$(date +%Y%m%d);

echo "[INRO]----------------rsync abc.war to $ip ------------------------"

rsync -aP $warpath/abc.war $ip::war/abc$curdate-$version.war
echo "[INRO]----------------rsync done --------------------------------------------"


end=`date +%s`
dif=$[ end - start ]
echo 共耗时 $dif 秒

服务器0.3配置

/etc/rsyncd.conf

[war] # 这里是认证的模块名,在client端需要指定
path = /rsync_path/dir1 # 需要做镜像的目录
uid = root
gid = root
read only = no # 只读
hosts allow = 192.168.0.1,192.168.1.2(中间无空格) 
# hosts allow = 192.168.0.0/24


© 著作权归作者所有

共有 人打赏支持
ganlm
粉丝 0
博文 5
码字总数 2402
作品 0
海淀
高级程序员
Hadoop多节点测试环境快速部署半自动脚本

本半自动部署包括两个脚本hdpini.sh(环境初始化)和 hdpbld.sh(创建hadoop)。 执行完第一个脚本,再检查手动调整一下。 然后根据第二个脚本里说明配置好ssh passwordless, 再执行第二个脚...

aibati2008
2016/02/23
32
0
孤月蓝风/VillageGuardians

Village Guardians 本项目基于GPL v2协议开源。 本项目模仿《Village Guardians》,除脚本外,其他所有音乐、音效、图像等素材均来源于网络,版权归原作者所有。 本项目不用于商业用途,仅用...

孤月蓝风
2015/11/09
0
0
皮肤包项目的 Gradle 脚本演化

我在做的一个项目需要有换肤功能,换肤的方案是采用第三方库 ThemeSkinning 的实现(在其基础上修复若干 bug)。皮肤的制作是把相关的资源放在一个 app module 中打包成 apk,当然资源的命名...

maosidiaoxian
04/11
0
0
Web应用安全审计工具--WATOBO

WATOBO是一个Web应用程序工具箱,它是一个旨在帮助专业安全人员执行高效率的(半自动)Web应用程序安全审计的工具。它类似于一个本地代理,在运行中分析网络通信寻找有用的信息和漏洞。它还具备...

匿名
2011/02/27
10.5K
0
Web 应用安全审计工具 —— WATOBO

WATOBO是一个Web应用程序工具箱,它是一个旨在帮助专业安全人员执行高效率的(半自动)Web应用程序安全审计的工具。它类似于一个本地代理,在运行中分析网络通信寻找有用的信息和漏洞。它还具备...

红薯
2011/02/27
9
0
自动化建构系统--CMake

CMake 是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程,可以产生标准的构建文件,如 Unix 的 Makefile 或Windows Visual C++ 的 projects/workspaces 。文...

匿名
2009/02/06
28.1K
2
CMake 3.1.2 发布,自动化建构系统

CMake 3.1.2 发布,此版本现已提供下载,详细更新内容请看发行说明。 CMake 是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程,可以产生标准的构建文件,如U...

oschina
2015/02/06
3K
8
CMake 3.9.6 发布,自动化构建系统

CMake 3.9.6 已发布,CMake 是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程,可以产生标准的构建文件,如 Unix 的 Makefile 或Windows Visual C++ 的 proj...

王练
2017/11/14
643
1
CMake 3.8.1 发布,自动化构建系统

CMake 3.8.1 发布了,CMake 是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程,可以产生标准的构建文件,如 Unix 的 Makefile 或Windows Visual C++ 的 proj...

达尔文
2017/05/03
986
3
CMake 3.5 发布,自动化构建系统

CMake 3.5 发布了,CMake 是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程,可以产生标准的构建文件,如Unix 的 Makefile 或Windows Visual C++ 的 projec...

oschina
2016/03/09
1K
8

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Nginx配置error_page 404 500等自定义的错误页面

Nginx 做web server时, 开发中发现有时候的网站代码有错误,我们需要跳转到一个指定内容的错误页面: 1. 在nginx.conf配置文件上加上一句: fastcgi_intercept_errors on; 2. 服务中加上: er...

MichaelShu
6分钟前
0
0
社区系统:如何搭建旅游攻略社区

随着国内经济的快速发展,人民经济收入和生活水平的提高,越来越多的人们在节假日会选择旅行,旅游行业蓬勃发展,并呈逐年上升趋势,同时,大多数游客尤其是自由行游客会在旅行前访问旅行攻略...

ThinkSNS账号
6分钟前
0
0
微服务架构下的监控系统设计(一)——指标数据的采集展示

前言 微服务是一种架构风格,一个大型复杂软件应用通常由多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。...

UCloudTech
11分钟前
0
0
极客时间《趣谈网络协议》之开篇词学习笔记

出于个人兴趣,本人在极客时间购买了网易研究院云计算技术部的首席架构师刘超老师关于计算机网络的专栏之《趣谈网络协议》,由于知识版权原因,不能直接分享刘超老师的原文,所以,我会在每次...

aibinxiao
13分钟前
0
0
Activiti - 新一代的开源 BPM 引擎

Activiti 背景简介、服务和功能介绍 董 娜, 狄 浩, 和 张 晓篱 2012 年 7 月 23 日发布 背景介绍 Activiti 其核心是 BPMN 2.0 的流程引擎。BPMN 是目前被各 BPM 厂商广泛接受的 BPM 标准,全...

孟飞阳
19分钟前
0
0
最有效的方式来适配

最有效的方式来进行屏幕适配 在上代码之前先把屏幕相关的几个概念搞清楚:Density、DensityDpi、ScaleDensity。这里我们不过多讲解这些概念知识。 1.0 获取设计图的屏幕尺寸:这里我以360dp...

android-key
21分钟前
0
0
微信授权代码翻译样本

var a,b,c,d = ngx.call(1,2,3)var e = [];var f ;var g = function () {}var h = 1;var c = "abcdefg" + "222";var d = "asdasdasd" + a;var a = ngx >>> log();//......

钟元OSS
23分钟前
0
0
5、二维码生成工具类

一、maven引入依赖jar包 <dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.1.0</version></dependency><dependency><groupId>com.......

丑陋的皮囊
24分钟前
0
0
正则表达式

以前用正则表达式很少,大部分情况下matches一下就好了,这次遇到的情况比较特殊,因为对截取出来的数据比较敏感(日期),所以就重新熟悉了一下,感觉有必要记录一下: /** * 从字符串中...

lost_keke
26分钟前
2
0
Java语言学习(十一):枚举类型和泛型

Java中一个重要的类型:枚举,它可以用来表示一组取值范围固定的变量,使用 enum 关键字定义枚举类型,其中元素不能重复,通常大写表示。利用Java的反射机制,可以在运行时分析类,如查看枚举...

海岸线的曙光
29分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部