文档章节

maven+svn 半自动脚本部署

ganlm
 ganlm
发布于 2014/11/17 16:57
字数 370
阅读 29
收藏 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
Web 应用安全审计工具 —— WATOBO

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

红薯
2011/02/27
9
0
Web应用安全审计工具--WATOBO

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

匿名
2011/02/27
10.5K
0
自动化建构系统--CMake

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

匿名
2009/02/06
28.1K
2

没有更多内容

加载失败,请刷新页面

加载更多

安卓的切图规范

Android UI 切图命名规范、标注规范及单位描述 很多UI设计师做APP切图都会有两套,一套是Android的,一套是IOS的。IOS我这边暂不作讲解,因为我本人也不是开发IOS。这里整理一下我在Android...

mo311
31分钟前
2
0
深度剖析阿里巴巴对Flink的优化与改进

摘要: 作者 | 阿里巴巴实时计算团队 导读:随着人工智能时代的降临,数据量的爆发,阿里巴巴的商品数据处理就经常需要面对增量和全量两套不同的业务流程问题,所以阿里巴巴就在想:能不能有...

阿里云官方博客
32分钟前
2
0
Dubbo基础介绍

Dubbo是一个常用的分布式服务框架, 它致力于提供高性能、透明化的RPC远程服务方案。 学习Dubbo有助于提高企业级应用的开发效率,以及可通过简单的配置就可以实现负载均衡,提高服务的效率。...

Java搬砖工程师
43分钟前
4
0
VBS 自动登陆

1.关于网页元素属性 IE浏览器打开网页时,有很多元素,比如说一个文本框,一个按键等。每个元素都会有对应的“name”、“ID”,“style”,“class”等属性。 其中的“ID”和“name”属性是我...

宝贝女儿
48分钟前
1
0
GO 文件相关操作

package mainimport("fmt""os""bufio""io""io/ioutil")type ChartCount struct{Chct intSpacect intNumberct intOtherct int}func main() {file,err := os.Open......

汤汤圆圆
49分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部