Archive

Archive for December, 2004

HP-UX硬盘资源管理

December 30th, 2004

在HPUX下正确使用硬盘的顺序及相应命令如下:

1. 先建物理卷:
# pvcreate -f /dev/rdsk/cCdDtT
这里必须使用硬盘的字符设备文件

2. 再建逻辑卷组:
# mkdir /dev/vg0X X:0~f,逻辑卷组名
# mknod /dev/vg0X/group c 64 0x0X0000
# vgcreate vg0X /dev/dsk/cCdDtT

3. 然后划分逻辑卷:
# lvcreate -L size vg0X size:该逻辑卷大小

4. 在LV上建文件系统:
# newfs -F file_system_type /dev/vg0X/rlvolY
file_system_type:文件系统类型,包括hfs和vxfs,注意此时用该逻辑卷的字符设备文件。

5. 将此文件系统Mount到一个目录下:
# mkdir /directory
# mount /dev/vg0X/lvolY /directory
    到此为止,您已经可以使用这个硬盘了。有时您可能在现有的环境下,需要添加、删除逻辑卷,或者是需要扩大文件系统。我们可以这样做:

6. 添加逻辑卷
1) 添加文件系统卷。例如:在vg01上添加一个200M的文件系统卷,卷名为data,mount到目录/sample 上。
A、创建逻辑卷,在系统提示符下键入命令:
# lvcreate -L 200 -n data /dev/vg01
B、在逻辑卷data上创建文件系统:
# newfs -F hfs /dev/vg01/rdata
注:如果是vxfs文件系统,则用
# newfs -F vxfs /dev/vg01/rdata
C、创建目录/sample,并将逻辑卷data mount 到/sample.
# mkdir sample\”
# mount /dev/vg01/data /sample
D、用bdf命令,将会看到/dev/vg01/data mount 到 /sample上。
2) 添加非文件系统卷(raw data volume)。例同上。
A、创建逻辑卷,在系统提示符下键入命令:
# lvcreate -L 200 -n data /dev/vg01
B、创建目录/sample,并将逻辑卷data mount 到/sample.
# mkdir sample
# mount /dev/vg01/data /sample
C、用bdf命令,将会看到/dev/vg01/data mount 到 /sample上。

7. 删除逻辑卷
例如:删除 vg01 中名为 data 的逻辑卷,mount 到/sample。
1) 卸载所要删除的逻辑卷:
A、首先用 umount 命令将逻辑卷 data 从/sample上卸载下来:
# umount /sample
B、若系统提示设备忙,不能卸载;则在根目录系统提示符下,键入以下命令,进入单用户:
# shutdown -y 0
在单用户下,先将所有逻辑卷mount上,键入命令:
# mount -a
用bdf命令看该逻辑卷是否已经mount上,如果mount上,键入以下命令:
# umount /sample
2) 删除逻辑卷 /dev/vg01/data ,用命令:
# lvremove /dev/vg01/data

8. 扩大文件系统
1) 扩大文件系统,首先要找到这个文件系统所对应的逻辑卷,只有首先扩大逻辑卷,给文件系统以扩大的空间,才能扩大文件系统。
2) 为扩大逻辑卷,先进单用户,在根目录系统提示符下,键入命令:
# shutdown -y 0
3) 进入单用户后,先将所有文件系统mount上,键入命令:
# mount -a
4) 用bdf命令看该文件系统是否已经mount上,如果mount上,用命令 #umount文件系统名umount该文件系统。例如,想要扩大\”/usr\”到500M ,就键入命令:
# umount /usr
5) 用命令:
# lvextend -L 500 /dev/vg00/lvol4
这里,假定 /usr 对应 /dev/vg00/lvol4
6) 用命令:
# extendfs /dev/vg00/lvol4 扩大文件系统。
注:如果是vxfs文件系统,则用
# extendfs -F vxfs /dev/vg00/lvol4
7) 用命令:
# mount /dev/vg00/lvol4 /usr
将文件系统 mount 到 /usr
这样,文件系统\”/usr\”就被扩大了,
8) 用命令:
# init 3 进入原来多用户运行级。

9. UNIX 的文件系统
    UNIX的文件系统是树状结构,一般指在一个逻辑卷上的文件的集合。从根开始,从表面上看,文件系统好象是一个整体,但实际上,文件系统可以分成不同的部分,单独占据一块逻辑卷,就是一个文件系统。



我就是未分类

中国程序员是不是有点太浮躁了?

December 28th, 2004

刚看到几篇对印度软件外包评论的,似乎所有人都觉得不怎么样,不应该成为榜样。

其实印度软件应该说还是有自己的特点的,如果说以前是纯编码,像国内一些人说的那样,那现在他们早就跨过了那个阶段,开始从需求,设计等全部都做了。相反,国内一些做软件外包(比如大连很多做日本软件外包业务的)还停留在单纯的coding。印度已经形成完整的软件开发链,再不是中国人眼中的一帮蓝领在美国人带领下看着流程图码英文。人家有了专门的高,中,低层次的开发设计人员,分工明确,形成了很完善的产业链。

反观中国的程序员,每个人都觉得自己很强,很难静下来做技术。每个人都能做点分析,作点设计,做点编码,可是几乎没有人能专门做哪一个做的好。中国缺乏专业的分工,或者就像媒体说的,缺乏蓝领阶层。但是我们所缺乏的蓝领阶层绝对不是什么北大青鸟三个月那种蓝领。更不是什么刚毕业的软件学院本科生生。我们已经有了很多优秀的程序员,但是我们需要他们静下来,少点浮躁,安心的做一名普通的程序员,而不是整天想着做什么项目经理。而前面说的那些,根本连coding都做不好,做蓝领都不合格。而缺少蓝领导致的直接原因,就是缺乏高级管理人才,没人给你管,当然没办法产生自己的高级人才。

中国的程序员被拔的太高了,稍微会点什么语言就以为自己应该是社会精英了。其实中国软件从业人员大多处在一个中低级水平,缺乏高级人才。当然不是说作为个体我们比印度差多少(应该说可能还要好点),但是在印度,和我们差不多的个人,愿意做一名所谓的蓝领工人,而我们不行,所以我们的软件产业始终不能做大。一个公司到上百人已经很了不起了,更别说很大的开发团队。做大型软件更无从谈起。没办法。

当然,这其中待遇,教育,中国人的传统,社会的现状对中国软件业的发展也有很大的影响。而印度软件业的发达,其实并不一定是什么好事。精英经济一向是印度的痼疾。可是做为一个程序员,我们是不是应该单从软件产业上承认我们与印度的差距?是不是该首先从自己身上好好找原因?

我就是未分类

JAVA正则表达式4种常用功能

December 27th, 2004

询:

String str=\”abc efg ABC\”;

String regEx=\”a|f\”;   //表示a或f 

Pattern p=Pattern.compile(regEx);

Matcher m=p.matcher(str);

boolean rs=m.find();

如果str中有regEx,那么rs为true,否则为flase。如果想在查找时忽略大小写,则可以写成Pattern p=Pattern.compile(regEx,Pattern.CASE_INSENSITIVE);

提取:
String regEx=\”.+\\\\\\\\(.+)$\”;

String str=\”c:\\\\dir1\\\\dir2\\\\name.txt\”;

Pattern p=Pattern.compile(regEx);

Matcher m=p.matcher(str);

boolean rs=m.find();

for(int i=1;i<=m.groupCount();i++){

System.out.println(m.group(i));

}

以上的执行结果为name.txt,提取的字符串储存在m.group(i)中,其中i最大值为m.groupCount();

分割:

String regEx=\”::\”;

Pattern p=Pattern.compile(regEx);

String[] r=p.split(\”xd::abc::cde\”);

执行后,r就是{\”xd\”,\”abc\”,\”cde\”},其实分割时还有跟简单的方法:

String str=\”xd::abc::cde\”;

String[] r=str.split(\”::\”);

替换(删除):

String regEx=\”a+\”; //表示一个或多个a

Pattern p=Pattern.compile(regEx);

Matcher m=p.matcher(\”aaabbced a ccdeaa\”);

String s=m.replaceAll(\”A\”);

结果为\”Abbced A ccdeA\”

如果写成空串,既可达到删除的功能,比如:

String s=m.replaceAll(\”\”);

结果为\”bbced  ccde\”

附:

\\d 等於 [0-9] 数字 
\\D 等於 [^0-9] 非数字 
\\s 等於 [ \\t\\n\\x0B\\f\\r] 空白字元 
\\S 等於 [^ \\t\\n\\x0B\\f\\r] 非空白字元 
\\w 等於 [a-zA-Z_0-9] 数字或是英文字 
\\W 等於 [^a-zA-Z_0-9] 非数字与英文字 

^ 表示每行的开头
$ 表示每行的结尾

我就是未分类

php session_start()

December 6th, 2004

提示出错:
Warning: session_start(): Cannot send session cookie – headers already sent by (output started at…………) in /home/…………


在windows平台下调试正常,但是弄到linux下就出错。

后来发现在linux平台下,session_start()必须放在每页的最前面,前面甚至连个空格都不能有~所以,改~

我就是未分类