`
zhengdl126
  • 浏览: 2538963 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

[sh]代码发布

 
阅读更多

======================= 开发机

#!/bin/sh
#SVN路径 主干
#svn_path_1="http://192.168.1.201:8080/svn/TEST/trunk/06-%E7%A8%8B%E5%BA%8F%E6%BA%90%E7%A0%81/01-%E6%BA%90%E7%A0%81/test"
#SVN路径 分支
svn_path_1="http://192.168.1.201:8080/svn/TEST/branches/1.1.4.3648sp1/test"

#SVN用户名/密码
svn_user="svncheck"
svn_passwd="svncheck"
#工作目录
cur_path="/usr/local/shell/svn"
#临时目录
tmp_path_1="$cur_path/tmp/test"
#tmp_path_2="$cur_path/tmp/lib"
#配置文件备份目录
bak_path="$cur_path/bakdir_test"
#上次取下的版本
rev_file="$cur_path/rev_file_test"
#svn记录
svn_log="$cur_path/svn_test.log"
#SVN备注记录
svn_msg_log="$cur_path/svn_msg.log"
#简洁日志文件


file="$cur_path/tmp/test_log"

#检查版本号
test -f "$rev_file" && latest_rev =`cat $rev_file`



if [ "$?" != 0 ];then
        latest_rev=1
fi
#开始执行时间
echo `date +%F......%T` >>$svn_log


#取SVN上最新版本号
head_rev=`svn info --username=$svn_user --password=$svn_passwd --no-auth-cache --non-interactive --xml $svn_path_1 | grep "revision" | head -1 |cut -d '"' -f2`


 if [ "$head_rev" -gt "$latest_rev" ];then
    svn export -r$head_rev --force --username=$svn_user --password=$svn_passwd --no-auth-cache --non-interactive  $svn_path_1 $tmp_path_1 >/dev/null 2>&1
#    svn export --force --username=$svn_user --password=$svn_passwd --no-auth-cache --non-interactive  $svn_path_1 $tmp_path_1 >>$svn_log
#    svn export --force --username=$svn_user --password=$svn_passwd --no-auth-cache --non-interactive  $svn_path_2 $tmp_path_2 >>$svn_log

    if [ "$?" == 0 ];then
        echo "$head_rev" > $rev_file
    fi

#取svn上备注
        svn log $svn_path_1 -r $latest_rev:$head_rev --username=$svn_user --password=$svn_passwd --no-auth-cache --non-interactive  > $svn_msg_log
#简洁备注
    echo "TEST.DEV开发环境代码已更新。SVN版本号为:$head_rev。主要做了以下修改:" > $file
    awk -v RS='------------------------------------------------------------------------' -v OFS='|' '$1=$1' $svn_msg_log | awk -F'|' '{j="";for(i=16;i<=NF;i++){j=j" "$i};print $4,j}' | sort -k1,2|uniq >> $file

#最终不变的配置文件
#    rm -fr $tmp_path_1/static/domain.inc


#剔除不发布的目录和文件
    rm -rf $tmp_path_1/protected/runtime/
        rm -rf $tmp_path_1/protected/config/extends/
        rm -rf $tmp_path_1/protected/data/vcode/
        rm -f $tmp_path_1/www/index.php
        rm -rf $tmp_path_1/www/assets/
#    chmod -R 777 $tmp_path_1/theme/logo
#    chmod -R 777 $tmp_path_1/static

#发布到本机最终目录
    cp -fr $tmp_path_1/*  /var/www/WWW_SSC_DEV/
   
#发布到本机最终目录
#    if [ `ls -al $tmp_path_2|wc -l` != 3 ];then
#    cp -pfr $tmp_path_2/*  /var/comm_der/
#    cp -pfr $tmp_path_2/*  /var/comm_dev/
#    cp -pfr $tmp_path_2/*  /var/comm_dew/

#发布版本号到192.168.1.76测试环境
scp $rev_file root@192.168.1.76:/usr/local/shell/svn/tmp



#清空临时目录
    rm -fr $tmp_path_1/*
   
#执行其它的脚本
#    /var/www/scheme/go
#提示消息
    echo "SSC Update Success! Revision:$head_rev"
else
    echo "no update! is latest!"
fi



 

===================== 测试机

#!/bin/sh
#SVN路径 主干
#svn_path_1="http://192.168.1.201:8080/svn/TEST/trunk/06-%E7%A8%8B%E5%BA%8F%E6%BA%90%E7%A0%81/01-%E6%BA%90%E7%A0%81/test"
#SVN路径 分支
svn_path_1="http://192.168.1.201:8080/svn/TEST/branches/1.1.4.3648sp1/test"

#SVN用户名/密码
svn_user="svncheck"
svn_passwd="svncheck"
#工作目录
cur_path="/usr/local/shell/svn"
#临时目录
tmp_path_1="$cur_path/tmp/test"
#tmp_path_2="$cur_path/tmp/lib"
#配置文件备份目录
bak_path="$cur_path/bakdir_test"
#上次取下的版本
rev_file="$cur_path/rev_file_test"
#svn记录
svn_log="$cur_path/svn_test.log"
#SVN备注记录
svn_msg_log="$cur_path/svn_msg.log"
#简洁备注
file="$cur_path/tmp/test_log"


#检查版本号  上次更新的最后版本,作为本次更新的起始版本
test -f "$rev_file" && latest_rev=`cat $rev_file`


if [ "$?" != 0 ];then
        latest_rev=1
fi
#echo $latest_rev
#开始执行时间
echo `date +%F......%T` >>$svn_log


#取SVN上最新版本号
#head_rev=`svn info --username=$svn_user --password=$svn_passwd --no-auth-cache --non-interactive --xml $svn_path_1 | grep "revision" | head -1 |cut -d '"' -f2`

 #更新至开发环境传过来的版本号(75):scp过来的截止版本,作为本次更新的终止版本
read head_rev < "$cur_path/tmp/rev_file_test"



 if [ "$head_rev" -gt "$latest_rev" ];then
    svn export -r$head_rev --force --username=$svn_user --password=$svn_passwd --no-auth-cache --non-interactive  $svn_path_1 $tmp_path_1 >>$svn_log


#    svn export --force --username=$svn_user --password=$svn_passwd --no-auth-cache --non-interactive  $svn_path_2 $tmp_path_2 >>$svn_log
    if [ "$?" == 0 ];then
        echo "$head_rev" > $rev_file
    fi
#取svn上备注
    echo "TEST.TEST测试环境代码已更新。SVN版本号为:$head_rev。主要做了以下修改:" > $file
        svn log $svn_path_1 -r $latest_rev:$head_rev --username=$svn_user --password=$svn_passwd > $svn_msg_log
        awk -v RS='------------------------------------------------------------------------' -v OFS='|' '$1=$1' $svn_msg_log | awk -F'|' '{j="";for(i=16;i<=NF;i++){j=j" "$i};print $4,j}' | sort -k1,2|uniq >> $file

#最终不变的配置文件
#    rm -fr $tmp_path_1/static/domain.inc


#剔除不发布的目录和文件
    rm -rf $tmp_path_1/protected/runtime/
        rm -rf $tmp_path_1/protected/config/extends/
        rm -rf $tmp_path_1/protected/data/vcode/
        rm -f $tmp_path_1/www/index.php
        rm -rf $tmp_path_1/www/assets/
#    chmod -R 777 $tmp_path_1/theme/logo
#    chmod -R 777 $tmp_path_1/static

#发布到本机最终目录
    cp -fr $tmp_path_1/*  /var/www/WWW_TEST_TEST/

   
#发布到本机最终目录
#    if [ `ls -al $tmp_path_2|wc -l` != 3 ];then
#    cp -pfr $tmp_path_2/*  /var/comm_der/
#    cp -pfr $tmp_path_2/*  /var/comm_dev/
#    cp -pfr $tmp_path_2/*  /var/comm_dew/
#    fi   

#清空临时目录
    rm -fr $tmp_path_1/*
   
#执行其它的脚本
#    /var/www/scheme/go
#提示信息
echo "TEST Update Success! Revision:$head_rev"
        sleep 5
else
        echo "no update! is latest!"
fi

 

分享到:
评论

相关推荐

    s2sh框架实现新闻发布系统

    s2sh框架的强大之处在于它将各层职责分离明确,提高了代码的可读性和可维护性,同时也为复杂业务逻辑的实现提供了便利。在实际开发中,开发者可以根据项目需求进一步扩展和定制功能,如添加评论、搜索、推荐等功能,...

    我发布源代码的jar包单独下载(同时也是S2SH通用jar包)

    标题中的“我发布源代码的jar包单独下载(同时也是S2SH通用jar包)”表明这是一个专门为S2SH框架提供支持的独立jar包,供开发者下载使用。S2SH是Struts2、Spring和Hibernate三个开源框架的组合,常用于构建企业级Web...

    Web课程作业基于sh框架新闻发布系统

    在这个过程中,sh框架的角色是提供结构化和模块化的开发环境,使得代码组织有序,易于维护和扩展。 【标签】:“sh 大作业 课程设计” “sh”标签表明这是一个使用特定框架的项目,可能是专门为教学目的设计的。...

    ldd.sh app.sh

    "ldd.sh" 和 "app.sh" 是两个在Linux环境中常见的脚本文件,它们在Qt程序打包发布过程中扮演着重要角色。现在让我们深入探讨这两个脚本文件的功能以及它们如何与“导出库”这个概念关联。 首先,`ldd.sh` 是一个...

    sh框架新闻发布系统

    "SH框架新闻发布系统"是一个基于特定的开发框架(可能指的是Spring Boot、Struts或其它以'SH'为简称的框架)构建的新闻管理系统,专用于管理和发布新闻内容。该系统采用了SQL Server数据库来存储和管理数据,这表明...

    S2SH整合_注册_登录

    在IT行业中,S2SH(Struts2 + ...这种整合提供了一种高效的开发方式,降低了代码耦合度,提高了可维护性和可扩展性。对于学习和理解MVC架构、依赖注入、面向方面编程以及ORM等核心概念,S2SH项目是一个很好的实践平台。

    HR人力资源管理系统源代码JAVAS2SH框架模式做的

    【标题】"HR人力资源管理系统源代码JAVAS2SH框架模式做的" 描述了一个基于Java S2SH(Struts2 + Spring + Hibernate)框架构建的人力资源管理系统的源码项目。这个项目是作者在学习阶段完成的,意在提供一个实践示例...

    开源项目-mvdan-sh.zip

    - sh 2.0的发布意味着它可能包含了一些新特性、性能优化或者对旧版本的bug修复,提升了整体的稳定性和功能完备性。 综上所述,“mvdan-sh”是一个强大的工具,对于那些在Go项目中需要处理Bash脚本的开发者来说,它...

    博客系统S2SH

    这个项目提供了博客文章的增删改查(CRUD)功能,并且支持分页显示,为用户提供了完整的博客发布和管理体验。 Struts2作为前端控制器,负责接收用户的请求,根据配置的Action映射转发到相应的业务处理方法。它的...

    PyPI 官网下载 | shis-0.0.8.tar.gz

    这个库的名称为"shis",下面我们将深入探讨Python库的构建、发布和使用,以及如何处理`.tar.gz`格式的压缩文件。 首先,了解Python库的结构至关重要。一个标准的Python项目通常包含以下几个部分: 1. **setup.py**...

    04-嵌入式单片机项目开发-SH1106驱动OLED显示屏STM32F407ZG-SPI例程

    1、嵌入式物联网单片机项目开发实战,每个例程都经过实战检验,简单好用。 2、代码使用KEIL 标准库开发,...5、如果接入其他传感器,请查看发布的其他资料。 6、单片机与模块的接线,在代码当中均有定义,请自行对照。

    Go-release.sh一个shell脚本用于在GitHub上构建和发布Go程序

    4. **创建版本标签**:为了跟踪发布的版本,脚本会为当前的源代码创建一个新的Git标签,这通常是基于版本号(如`v1.2.3`)。 5. **打包二进制文件**:构建后的可执行文件会被打包成tarball或其他格式的归档文件,...

    s2sh_annotation.rar_纯s2sh框架

    在压缩包中的文件"**s2sh_annotation**"可能包含了这个项目的源代码,包括Struts2的Action类、Spring的Bean定义以及Hibernate的实体类等,它们都可能使用了注解来配置。通过查看这些文件,学习者可以了解如何在实际...

    BBS论坛管理系统S2SH框架开发

    BBS论坛管理系统是互联网上常见的社区交流平台,它允许用户发布主题、回帖、互动交流。本文将深入探讨一个使用S2SH框架开发的BBS论坛管理系统,分析其设计原理、核心技术和实现细节。 S2SH框架,全称为Struts2 + ...

    北风网 S2SH+JQeury+JBPM 人力资源管理系统(代码完整版附带数据库和作用说明)

    4. **招聘管理**:发布职位、收集简历、安排面试,整个流程可由JBPM驱动,保证公平公正。 5. **培训发展**:规划员工的职业发展路径,提供培训资源,记录培训成果。 6. **绩效考核**:设定考核标准,进行周期性的...

    基于S2SH的新闻信息系统

    这个基于S2SH的新闻信息系统,是利用这三大框架的强大功能来构建的,旨在提供一个高效、稳定且易于维护的信息发布和管理平台。 1. **Struts2**:作为表现层框架,Struts2负责处理HTTP请求,将用户交互转化为可操作...

    s2sh + extjs4 办公平台架构

    系统架构:s2sh + extjs4, 配置我采用传统的xml配置,并没有使用注解的形式,是因为我考虑到xml配置能够更清晰明了,通过配置文件能够清晰看出类之间的关系。 系统特点: 1、使用ehcache 缓存存储用户登录信息,...

    linux-一些常用的shell脚本用于webserver的服务安装线上代码发布推送等

    本资源库汇集了多种针对Web服务器服务安装、线上代码发布推送等日常运维任务的shell脚本,这些脚本极大地提高了开发人员和运维人员的工作效率。 1. **Shell脚本基础** - Shell脚本是一种解释型的编程语言,通过...

    sh2java框架大型网站

    6. **文章管理**:文章管理系统负责处理发布、修改、删除文章等操作。通常包括文章的分类、标签、内容编辑、审核流程等功能,确保信息的准确性和时效性。 7. **用户管理**:用户管理模块涉及用户注册、登录、权限...

Global site tag (gtag.js) - Google Analytics