自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (4)
  • 收藏
  • 关注

原创 git tag管理

不带说明的轻量级里程碑不推荐使用。带签名的太麻烦,不搞。这里介绍带说明的里程碑创建和管理。先提交一下:git commit --allow-empty -m "commit before adding test tag"[master bcab410] commit before adding test tag创建里程碑:git tag -m' add test tag1' testTag1查看

2012-09-26 18:49:22 6042

原创 git stash保存恢复进度

如果改动了working area和staging area的文件,需要保存起来,然后忽略这些改动,回到最后一次提交的状态。可以使用git stash.假定项目中有一个文件t,先用git rm t 从删除之,这时候working area中该文件消失了。然后执行git stash命令,再看working area中,该文件又回来了。这时候调用git stash list命令,看到:git stas

2012-09-26 17:59:25 5388

原创 Windows安装Git客户端工具

首先下载msysgit,主站点:http://msysgit.github.com/注意,不是git for windows,而是msysgit。我下载的是Git-1.7.11-preview20120710.exe安装后就可以使用Git Bash打开特制的终端,在里面用来命令行了。喜欢Git命令行方式的朋友到这里就够了。喜欢Tortoise风格点菜单的朋友继续。然后到这个地方下载http://c

2012-09-24 10:41:54 22003 3

原创 Ubuntu12.04安装kvm

为了在一台服务器上虚拟出多个Ubuntu server,用于集群。考虑了几个方案,Vmware因为价格被排除,VirtualBox不错,不过KVM由于是Linux内核层的,性能更好。优先考虑使用。首先在一台实验机器上安装Ubuntu 12.04 amd64 server。升级系统补丁以及内核。hostname是kvmhost. IP是10.112.18.177. 主板上已经打开了虚拟化功能。好。现

2012-09-23 17:08:00 17177 1

原创 bash 脚本编程二十一 MongoDB自动部署

这是单机版本的自动部署,手动部署可以参考我的另一篇文章:http://blog.csdn.net/sheismylife/article/details/6737127首先下载mongodb-linux-x86_64-2.2.0.tgz, 解压后放到工程目录mongodb下。然后准备启动脚本mongodb:#!/bin/sh ### BEGIN INIT INFO# Provides:

2012-09-23 11:52:53 4174

原创 bash 脚本编程二十 GlassFishV3自动部署

我的手动安装版本请参考:http://blog.csdn.net/sheismylife/article/details/76495711.先下载最新版本的glassfish, 网址:http://glassfish.java.net/downloads/3.1.2.2-final.html解压后放到工程目录下。然后根据自己的需要修改glassfish/domains/domain1/config

2012-09-20 15:13:00 2781 1

原创 bash 脚本编程十九 Nginx自动部署

自动化部署达到以下几个目的:1.编译2.安装3.生成HTTPS 证书4.配置5.设置Ubuntu 服务首先将Nginx的压缩包解压并放在工程目录下,然后将要准备的的配置文件放在conf目录下,还有作为service需要的启动脚本文件nginx目录结构如下:# tree -L 2tree -L 2.├── conf│   ├── agol.conf│   └── nginx.conf├─

2012-09-20 11:27:35 3677

原创 Ubuntu下配置虚拟IP地址

我配置虚拟IP地址的目的是为了实现高可用性,那是后话,先看看Ubuntu12.04下如何设置虚拟IP地址。首先看一下我的Ubuntu的IP:chenshu@sloop2:~$ ifconfigeth0 Link encap:Ethernet HWaddr d0:67:e5:ef:5a:6e inet addr:10.112.18.158 Bcast:10.1

2012-09-19 15:27:32 11958

原创 bash 脚本编程十八 Keepalived自动部署

紧接前面手工部署Keepalived的文章,这次来自动部署。建立keepalived目录,里面已经存放了下载并解压的keepalived-1.2.7目录,包括和用于作为系统服务的keepalived脚本注意,是前面一文修改过后能用于ubuntu的版本。install.sh脚本内容:#!/bin/bash source ../common/tool.shlibssl="libssl-dev"

2012-09-19 14:33:10 3758

原创 Ubuntu编译安装Keepalived

Keepalived是一种防止单点故障的高可用解决方案。首先下载:cd /usrwget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz解压:tar zxvf keepalived-1.2.7.tar.gz编译之前需要安装几个程序库apt-get install libssl-devapt-get install openss

2012-09-19 13:58:49 9296

原创 bash 脚本编程十七 NFS client自动部署

1.自动检测并安装nfs-common,2.自动创建目录并mount3.同时检查/etc/fstab文件中是否有配置,没有则加入。确保下次开机能自动mount。install.sh脚本:#!/bin/bash source ../../common/tool.shnfsClient="nfs-common"nfsServerFolder=10.112.18.158:/opt/share

2012-09-19 11:04:05 3233

原创 git checkout之二 切换到分支和文件覆盖

1.创建分支git checkout -b feature_namegit中推荐为了某个新的功能创建feature branch,完成后再将其合并到master中。然后就可以用git branch来查看所有分支。2.切换分支如果有了多个branch, 就可以用checkout切换到某个branch。用法很简单:git checkout branchname该命令修改了HEAD文件内容。3.用sta

2012-09-18 16:28:24 68036 16

原创 git reset用法二 替换文件

git reset的第二种用法不是用于重置引用的,而是为了能够将某个历史版本中的文件拿出来,替换当前staging中的同名文件。这个也更加常用。比如git reset 就是用仓库中当前版本的文件(位于.git/objects目录下)替换掉staging中的文件。相当于撤销上一次git add的作用。比如我们在x文件中添加一些内容,然后用下面的命令:$ git add -u$ git reset

2012-09-18 14:47:37 7001

原创 git reset用法 一 重置引用(版本切换)

reset命令让我们可以在历史版本中切换。每次commit都会有一个commit id。比如看看我的仓库的日志:chenshu@sloop2:~/work/189/appengine$ git logcommit f9fae00840b97ca9ab4e782c9581fb6cb35b0ff4Author: shuchen Date: Tue Sep 18 13:15:11 2012 +

2012-09-18 14:04:38 18792 1

原创 git reflog

我体会的和git log的差别在于当版本切换到历史版本的时候,reflog还有所有记录,而log此时可能会丢失某些版本记录。具体参考我的"git reset"用法文章。git reflog用法:$ git reflogf9fae00 HEAD@{0}: commit: update common/tool.sh7e5aad7 HEAD@{1}: pull: Fast-forwardf03c6

2012-09-18 13:53:31 4795

原创 bash 脚本编程十六 NFS server自动部署

现在创建nfs/server目录,这个脚本要自动安装并配置nfs server。install.sh脚本:#!/bin/bash source ../../common/tool.shnfs="nfs-kernel-server"hasDpkg $nfsr=$?if [ $r -eq 1 ]then echo "$nfs was installed"else

2012-09-17 15:43:51 2920

原创 Ubuntu12.04安装NFS server

首先安装nfs-kernel-serverapt-get install nfs-kernel-server然后创建一个目录:mkdir -p /opt/share并赋予权限777:chmod -R 777 /opt/share在/etc/exports文件中添加配置:/opt/share 10.112.18.0/255.255.255.0(rw,no_root_squash)在/etc/

2012-09-17 15:12:01 4102

原创 bash 脚本编程十五 MySQL自动部署

现在来考虑MySQL在Ubuntu上的自动部署,有几个问题需要解决:第一,检查是否安装过了MySQL第二,安装过程中避免交互式输入root密码在tool.sh中添加函数检查dpkg包。#$1 means the full name of dpkg#return 1 if dpkg is installed (found 'ii dpkg-name' in the returned string)

2012-09-17 13:34:06 3480

原创 bash 脚本编程十四 maven自动部署

和Java自动部署的思路一样,通过在/usr/bin下建立mvn链接,指向/etc/alternatives/mvn链接,/etc/alternatives/mvn指向/usr/mvn3链接,/usr/mvn3链接指向/usr/apache-maven-3.0.4目录。由于maven运行是要检查JAVA_HOME环境变量,而JAVA_HOME环境变量的设置可以放在安装Java的脚本中执行。现在看一

2012-09-17 10:57:22 3199

原创 bash 脚本编程十三 环境变量的设置函数

可以将前面的环境变量设置代码封装成函数,以后可以反复使用:# $1 variable name# $2 expected value# put this into /etc/environment if not foundfunction setEnv { source /etc/environment if [ "${!1}" = "$2" ] then echo

2012-09-15 15:10:57 2603

原创 bash 脚本编程十二 环境变量的设置

在前面自动部署了JDK后,为了方便一些基于Java的程序,需要设置环境变量JAVA_HOME下面这段代码:if [ "$JAVA_HOME" = "/usr/jdk1.6" ]then echo "JAVA_HOME is correct: $JAVA_HOME"else echo "JAVA_HOME is wrong: $JAVA_HOME" h=`grep 'J

2012-09-15 14:35:02 2830

原创 bash 脚本编程十一 JDK自动部署

现在演示如何用bash脚本自动化部署JDK。环境:Ubuntu12.04 amd 64 Desktop or Server, 必须是Bash shell复制目录java到目标机器,用root权限执行install.sh脚本即可。看一下目录结构:.├── check.sh├── install.sh├── jdk1.6.0_35├── readme└── tool.sh要执行的就是inst

2012-09-15 11:24:00 3783

原创 bash 脚本编程十 将函数放在库文件

现在将检查java的函数放在另一个文件check.sh中#!/bin/bash #check java is available in this sessionfunction hasJava { v=`java -version 2>&1` echo 'check java platform...' pos=`expr match "$v" 'java'`

2012-09-14 15:47:14 2796

原创 bash 脚本编程九 函数

将前面的检查java代码封装为函数,然后再调用之,脚本修改如下:#!/bin/bash #check java is available in this sessionfunction hasJava { v=`java -version 2>&1` echo 'check java platform...' pos=`expr match "$v" 'java'

2012-09-14 15:15:01 2712

原创 bash 脚本编程八 匹配命令输出

当输入java -version的时候,如果安装了jdk,会输出类似下面的信息:$ java -versionjava version "1.6.0_34"Java(TM) SE Runtime Environment (build 1.6.0_34-b04)Java HotSpot(TM) 64-Bit Server VM (build 20.9-b04, mixed mode)可以用ex

2012-09-14 15:08:16 3299

原创 bash 脚本编程七 将命令输出保存到变量中

`符号包含的命令执行完后,可以讲其输出结果保存到变量中#!/bin/bash v=`java -version`echo $v执行结果:$ ./install.shjava version "1.6.0_34"Java(TM) SE Runtime Environment (build 1.6.0_34-b04)Java HotSpot(TM) 64-Bit Server VM (b

2012-09-14 13:11:27 25648 4

原创 bash 脚本编程六 循环,遍历目录

现在看看循环的写法:for v in ...do ...done写个简单的例子看一下:#!/bin/bashfor v in man woman childdo echo $vdone输出结果为:$ ./test.shmanwomanchildfor in的写法和很多现代语言相近。就是...可以用 空格隔开的若干个值表示再进一步,打开一个目录,遍历其中的文件(不递归)#!

2012-09-13 15:38:31 9257 1

原创 bash 脚本编程五 条件语句

结合前面的例子,来写一个条件表达式。如果第一个参数没有,则输出no parameter,否则输出第一个参数。#!/bin/bashif [ -n "$1" ]then echo "1st parameter: $1"else echo "no parameter"fi输入带参数命令:$ ./test.sh 'this is a test'1st parameter: t

2012-09-13 14:35:18 3878

原创 bash 脚本编程四 外部参数 IFS

通过$0可以获取传递来的第一个参数,就是脚本自己,$1可以获得第二个参数,比如:#!/bin/bashecho "$0"echo "$1"运行程序./test/sh q看到:$ ./test.sh q./test.shq传递参数的时候,如果是字符串,可以用单引号或者双引号包起来,表示这是一个完整的参数:./test.sh 'this is a test'既然扯到双引号,要注意,如果在双引

2012-09-13 14:05:59 4940

原创 bash 脚本编程三 变量组成命令与大括号

在sh脚本文件中,我们可以直接运行Linux命令,比如:#!/bin/bashmkdir ~/xtouch ~/x/mls ~/x -alh输出结果是:$ ./test.shtotal 8.0Kdrwxrwxr-x 2 chenshu chenshu 4.0K Sep 13 10:49 .drwxr-xr-x 64 chenshu chenshu 4.0K Sep 13 10:49

2012-09-13 11:00:10 3997

原创 bash 脚本编程二 单双引号

简单来说,双引号不会阻止变量取值符号的作用,所以me="ok f"echo "$me"输出结果是:ok f而改用单引号后,会将$符作为普通字符显示,不再求值:me="ok f"echo '$me'输出结果是:$me如果使用转义符号\,在双引号里面也能达到单引号的效果:me="ok f"echo "\$me"输出结果也是:$me

2012-09-12 17:14:35 2077

原创 bash 脚本编程一 文件头,注释 和 变量

必须在脚本文件开头写下:#!/bin/bash意思是这是一个bash shell脚本,而不是其他流行的脚本文件。调用一个基本的Linux命令,echo "hello,world"保存为test.sh文件,打开执行权限:sudo chmod +x ./test.sh运行吧:./test.sh看到了hello,world.添加一个注释吧,用#开头(pound sign)的所有字符都是注释,除了第一行以

2012-09-12 16:56:45 16346

原创 用Maven实现不同的测试策略

我使用的是Maven + Surefire + TestNG的测试方案。注意,这里不要采用testng.xml的方式。然后设置一个默认属性 110portal 接着设置一个profile agol arcgis.com 在surefire-plugin中如下配置: org.apach

2012-09-12 14:08:04 2893

原创 MySQL Slow Query 设置

在my.cnf文件中查找slow#log_slow_queries = /var/log/mysql/mysql-slow.log去掉注释, 保存到日志文件路径根据需要修改。同时去掉下面的设置的注释:long_query_time = 1log-queries-not-using-indexes这里当超过1秒的查询就视为慢查询如果没有使用index的查询,也要被作为慢查询记录到日志

2012-09-11 14:43:46 3385

原创 用Emacs MUSE生成HTML报告时包含数学公式

需求如题,现在首先明白,最新版本的emacs自带了muse-latex2png.el文件。该程序会将latex转换成png,然后显示在html图片上。在~/.emacs中添加:(require 'muse-latex2png)但是以来另一个程序转成png,在Ubuntu下安装:apt-get install dvipng好了,打开Muse文档,输入如下标记:\[E = mc^2\]会显示:

2012-09-08 20:59:27 3344

原创 C++ 转换成 JSON

经常有朋友问我如何将C++对象转换成JSON格式字符串。我的回答通常是CppCMS中的json::value. 我也写过一篇文章介绍该技术。但是最近有些不同的想法。因为用到一个vector > 数据结构,json::value不支持这个模板特化。同时也发现json::value的设计思想是将所有的c++对象存储在std::map中,然后再导出为json字符串。但是在我开发的和看到的很多web se

2012-09-08 17:15:21 21233

原创 git 修订email的用法

经常遇到的一个问题,git安装好了,从远程服务器克隆项目代码,开发后,调用push命令。Gerrit提醒,你的email地址和服务器上登记的不匹配。拒绝push到review分支。好,然后通过编辑~/.gitconfig文件添加或者修改用户名和email地址。改完后,再次push,不行,还是原来的错误。因为这个时候上次commit的信息没有被改变。需要通过commit -amend参数进行修订。所

2012-09-05 14:10:19 2953

原创 git log

git log直接在项目目录下敲git log,会看到提交的日志,每一条如下:$git logcommit 438bcd38d006f307e188c17e89ae36a5c425133aAuthor: shuchen Date:   Wed Sep 5 13:36:32 2012 +0800    delete lian.1commit id ,作者,时间日期,提交的时候写的注释。--prett

2012-09-05 13:48:48 4343

原创 git status

观察项目的状态,直接使用git status 比如我的当前工作目录没有什么要提交的。$ git status# On branch masternothing to commit (working directory clean)当用git rm删除一个文件后,再看。$ git rm lian.1 rm 'lian.1'$ git status# On branch master# Changes

2012-09-05 13:35:14 3623

原创 git ignore

忽略一些目录在当前项目中创建.gitignore文件,里面加上target/build/忽略一些文件同样在.gitignore文件中加上:(因为emacs总是喜欢创建这些文件作为备份,同时还有jdee文件等等)*.*~prj.el*.jdee*我的项目中同时有Java Maven项目和C++ CMake项目,这下编译产生的目录直接被忽略掉了。很方便啊!而且应该总是将.gitognore文件添加到项

2012-09-05 13:26:10 3186

JSF2自定义组件编程系列 第五部分 源代码

package composite component into jar maven3 jsf2 UBuntu glassfishv3.0.1 Emacs JDEE

2011-01-06

JSF2 example project

一个我自己用的JSF2的模板工程,使用maven-glassfish-plugin,mybatis,logback。

2011-01-03

用UBuntu开发OpenGL程序8

摄像头360度旋转示例 开发平台,UBuntu,NetBeans6.8

2010-02-24

用UBuntu开发OpenGL程序6 源代码

文章附带源代码,NetBeans6.8工程,UBuntu系统

2010-02-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除