文档章节

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
皮肤包项目的 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

没有更多内容

加载失败,请刷新页面

加载更多

Spring IOC实现原理

1、BeanDefinition 对依赖翻转模式中管理对象依赖关系的数据抽象 实现依赖翻转功能的核心数据结构 依赖翻转功能都是围绕对BeanDefinition 处理完成的 有了这些BeanDefinition 基础数据结构,...

职业搬砖20年
14分钟前
0
0
Python判断变量的数据类型的两种方法

1、isinstance(变量名,类型) def varargsql(self, sql, *args): if isinstance(args, tuple): self.cursor.execute(sql, args) self.conn.commit() 2、通过与其他已......

fang_faye
14分钟前
0
0
xml 转义特殊字符

XML中共有5个特殊的字符,分别是:&<>“’。如果配置文件中的注入值包括这些特殊字符,就需要进行特别处理。有两种解决方法:其一,采用本例中的特殊标签,将包含特殊字符的字符串封装起来;...

inidcard
16分钟前
0
0
Mysql中哪些sql 不会走索引

1. 索引列参与了计算 SELECT `sname` FROM `stu` WHERE `age`+10=30; 2. 索引使用了函数运算 SELECT `sname` FROM `stu` WHERE LEFT(`date`,4) <1990; 3. like SELECT * FROM `houdunwang` W......

ChyiHuang
25分钟前
1
0
nginx 504 Gateway Time-out

打开nginx.config: 参数介绍: #设定http服务器http{include mime.types; #文件扩展名与文件类型映射表default_type application/octet-stream; #默认文件类型#charset utf-8; #默...

lyle_luo
27分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部