- 浏览: 2538963 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (676)
- linux运维 (157)
- php (65)
- mysql (78)
- nginx (27)
- apche (18)
- framework (6)
- windows (9)
- IDE工具 (23)
- struts2 (7)
- java (13)
- 移动互联网 (14)
- memcache redis (23)
- shell基础/命令/语法 (37)
- shell (50)
- puppet (4)
- C (11)
- python (9)
- 产品经理 (27)
- Sphinx (4)
- svn (12)
- 设计构建 (12)
- 项目管理 (44)
- SEO (1)
- 网站架构 (26)
- 审时度势 (42)
- 网络 (14)
- 激发事业[书&视频] (81)
- 其它 (12)
- 摄影 (8)
- android (21)
最新评论
-
zhongmin2012:
原文的书在哪里
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
renzhengzhi:
你好,请问个问题,从master同步数据到slave的时候,s ...
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
ibc789:
你好,看了你的文章,我想请教个问题, 我在用 redis的时候 ...
redis 的两种持久化方式及原理 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
======================= 开发机
#!/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
发表评论
-
设置sudo为不需要密码
2015-04-17 09:04 10510有时候我们只需要执 ... -
haproxy 安装配置和负载实例
2015-03-27 11:49 11531一、环境说明实验环境 OS CentOS5.4 192.1 ... -
/dev/mapper/VolGroup00-LogVol00 100% 如何处理
2015-03-03 10:51 8209服务器磁盘跑满了, 命令查看 如下 [root@lo ... -
Tsar开源:淘宝内部大量使用的系统监控工具
2014-08-07 09:51 971Tsar是淘宝的一个用来收集服务器系统和应用信息的采集报告 ... -
Linux运维常用命令 (转载)
2013-01-31 10:23 25241 删除0字节文件find-type f - ... -
[汇总]shell笔试
2013-01-24 17:32 3363http://president.blog.51cto.co ... -
linux恢复 rm -rf 删除的文件:extundelete
2013-01-24 15:47 8910http://blog.csdn.net/pang6013 ... -
网站排障分析常用的命令
2013-01-21 18:17 1397------------------------------- ... -
迁移vmware服务器后Device eth0 does not seem to be present
2013-01-21 10:58 2250用VMware 安装 linux 6.0 ... -
检测 mysql 的sleep进程数
2013-01-04 14:13 1661#!/bin/sh 注:这个脚 ... -
LoadRunner如何监控Linux系统资源 : rpc.rstatd
2012-12-17 14:49 10294一 简述:LoadRunner监控Linux资源时弹出如下错误 ... -
僵尸Z进程和D进程
2012-12-10 16:47 13146-------------- 1 关于ZOMBIE进 ... -
Unix操作系统硬链接与符号链接的区别
2012-12-10 16:08 2021Unix操作系统有很多值得 ... -
nagios配置参数详解
2012-12-04 14:12 9440# Nagios return codes#定 ... -
nagios自定义监控nginx php和ip_conn
2012-12-03 17:57 3169自定义ip_conn.sh :http://zhume ... -
【汇总】shell show收藏
2012-11-29 14:03 1268================== shell从文本取对应的 ... -
Kickstart+PXE+DHCP+TFTP+NFS自动安装Centos5
2012-11-29 11:34 1602http://5ydycm.blog.51cto.com/11 ... -
haproxy+keepalived高可用负载均衡(七层)
2012-11-29 10:36 4006HAproxy是一款基于TCP( ... -
LVS+Keepalived
2012-11-29 10:10 1734http://www.linuxvirtualserver.o ... -
haproxy & LVS*(keepalived和heartbeat) & ng的比较
2012-11-29 10:04 7589http://network.51cto.com/art/ ...
相关推荐
s2sh框架的强大之处在于它将各层职责分离明确,提高了代码的可读性和可维护性,同时也为复杂业务逻辑的实现提供了便利。在实际开发中,开发者可以根据项目需求进一步扩展和定制功能,如添加评论、搜索、推荐等功能,...
标题中的“我发布源代码的jar包单独下载(同时也是S2SH通用jar包)”表明这是一个专门为S2SH框架提供支持的独立jar包,供开发者下载使用。S2SH是Struts2、Spring和Hibernate三个开源框架的组合,常用于构建企业级Web...
在这个过程中,sh框架的角色是提供结构化和模块化的开发环境,使得代码组织有序,易于维护和扩展。 【标签】:“sh 大作业 课程设计” “sh”标签表明这是一个使用特定框架的项目,可能是专门为教学目的设计的。...
"ldd.sh" 和 "app.sh" 是两个在Linux环境中常见的脚本文件,它们在Qt程序打包发布过程中扮演着重要角色。现在让我们深入探讨这两个脚本文件的功能以及它们如何与“导出库”这个概念关联。 首先,`ldd.sh` 是一个...
"SH框架新闻发布系统"是一个基于特定的开发框架(可能指的是Spring Boot、Struts或其它以'SH'为简称的框架)构建的新闻管理系统,专用于管理和发布新闻内容。该系统采用了SQL Server数据库来存储和管理数据,这表明...
在IT行业中,S2SH(Struts2 + ...这种整合提供了一种高效的开发方式,降低了代码耦合度,提高了可维护性和可扩展性。对于学习和理解MVC架构、依赖注入、面向方面编程以及ORM等核心概念,S2SH项目是一个很好的实践平台。
【标题】"HR人力资源管理系统源代码JAVAS2SH框架模式做的" 描述了一个基于Java S2SH(Struts2 + Spring + Hibernate)框架构建的人力资源管理系统的源码项目。这个项目是作者在学习阶段完成的,意在提供一个实践示例...
- sh 2.0的发布意味着它可能包含了一些新特性、性能优化或者对旧版本的bug修复,提升了整体的稳定性和功能完备性。 综上所述,“mvdan-sh”是一个强大的工具,对于那些在Go项目中需要处理Bash脚本的开发者来说,它...
这个项目提供了博客文章的增删改查(CRUD)功能,并且支持分页显示,为用户提供了完整的博客发布和管理体验。 Struts2作为前端控制器,负责接收用户的请求,根据配置的Action映射转发到相应的业务处理方法。它的...
这个库的名称为"shis",下面我们将深入探讨Python库的构建、发布和使用,以及如何处理`.tar.gz`格式的压缩文件。 首先,了解Python库的结构至关重要。一个标准的Python项目通常包含以下几个部分: 1. **setup.py**...
1、嵌入式物联网单片机项目开发实战,每个例程都经过实战检验,简单好用。 2、代码使用KEIL 标准库开发,...5、如果接入其他传感器,请查看发布的其他资料。 6、单片机与模块的接线,在代码当中均有定义,请自行对照。
4. **创建版本标签**:为了跟踪发布的版本,脚本会为当前的源代码创建一个新的Git标签,这通常是基于版本号(如`v1.2.3`)。 5. **打包二进制文件**:构建后的可执行文件会被打包成tarball或其他格式的归档文件,...
在压缩包中的文件"**s2sh_annotation**"可能包含了这个项目的源代码,包括Struts2的Action类、Spring的Bean定义以及Hibernate的实体类等,它们都可能使用了注解来配置。通过查看这些文件,学习者可以了解如何在实际...
BBS论坛管理系统是互联网上常见的社区交流平台,它允许用户发布主题、回帖、互动交流。本文将深入探讨一个使用S2SH框架开发的BBS论坛管理系统,分析其设计原理、核心技术和实现细节。 S2SH框架,全称为Struts2 + ...
4. **招聘管理**:发布职位、收集简历、安排面试,整个流程可由JBPM驱动,保证公平公正。 5. **培训发展**:规划员工的职业发展路径,提供培训资源,记录培训成果。 6. **绩效考核**:设定考核标准,进行周期性的...
这个基于S2SH的新闻信息系统,是利用这三大框架的强大功能来构建的,旨在提供一个高效、稳定且易于维护的信息发布和管理平台。 1. **Struts2**:作为表现层框架,Struts2负责处理HTTP请求,将用户交互转化为可操作...
系统架构:s2sh + extjs4, 配置我采用传统的xml配置,并没有使用注解的形式,是因为我考虑到xml配置能够更清晰明了,通过配置文件能够清晰看出类之间的关系。 系统特点: 1、使用ehcache 缓存存储用户登录信息,...
本资源库汇集了多种针对Web服务器服务安装、线上代码发布推送等日常运维任务的shell脚本,这些脚本极大地提高了开发人员和运维人员的工作效率。 1. **Shell脚本基础** - Shell脚本是一种解释型的编程语言,通过...
6. **文章管理**:文章管理系统负责处理发布、修改、删除文章等操作。通常包括文章的分类、标签、内容编辑、审核流程等功能,确保信息的准确性和时效性。 7. **用户管理**:用户管理模块涉及用户注册、登录、权限...