Wednesday, December 19, 2007

墨菲定律

墨菲定

Murphy's Law ("If anything can go wrong, it will") was born here (Edwards Air Force Base) – in 1949 at North Base.

It was named after Capt. Edward A. Murphy, an engineer working on Air Force Project MX981, (a project) designed to see how much sudden deceleration a person can stand in a crash.

One day, after finding that a transducer was wired wrong, he cursed the technician responsible and said, "If there is any way to do it wrong, he'll find it."

The contractor's project manager kept a list of "laws" and added this one, which he called Murphy's Law.

Actually, what he did was take an old law that had been around for years in a more basic form (see first paragraph above) and give it a name.

Shortly afterwards, the Air Force doctor (Dr. John Paul Stapp) who rode a sled on the deceleration track to a stop, pulling 40 Gs, gave a press conference. He said that their good safety record on the project was due to a firm belief in Murphy's Law and in the necessity to try and circumvent it.

Aerospace manufacturers picked it up and used it widely in their ads during the next few months, and soon it was being quoted in many news and magazine articles. Murphy's Law was born.

The Northrop project manager, George E. Nichols, had a few laws of his own. Nichols' Fourth Law says, "Avoid any action with an unacceptable outcome."

The doctor, well-known Col. John P. Stapp, had a paradox: Stapp's Ironical Paradox, which says, "The universal aptitude for ineptitude makes any human accomplishment an incredible miracle."

Nichols is still around. At NASA's Jet Propulsion Lab in Pasadena, he's the quality control manager for the Viking project to send an unmanned spacecraft to Mars.

Thursday, December 13, 2007

chinalog: 文档被保存,但是语音识别的数据丢失……

chinalog: 文档被保存,但是语音识别的数据丢失……: "undefined"

Word 文档保存时,会弹出“文档被保存,但是语音识别的数据丢失……”

1、在“工具”菜单上,单击“选项”。

2、在“选项”窗体中,单击“保存”页。

3、在“保存”页中,单击“嵌入语言数据”复选项,使“嵌入语言数据”复选项,不被选中。

4、在“选项”窗体中,单击“确定”按钮保存。

Wednesday, November 28, 2007

优盘数据恢复-无法识别的设备

优盘数据恢复:无法识别的设备

优盘坏了,里面有重要数据,需要做优盘数据恢复。
故障为:不认盘,无法识别的设备。
分析,最常见的几种情况,用力过度导致USB接口损坏,电压不稳定导致3.3V稳压IC损坏,强烈振动导致晶振损坏,还有就是控制芯片和闪存芯片的问题的了,如果坏了闪存那太幸运了,买新的比修好要划算。
第一步当然是打开外壳露出电路板,外壳密封还很紧,原来以为是超声焊接的,用了好大的功夫才撬开,是502胶水粘住的。



露出电路板,没有发现3.3稳压IC,就是上面U6的地方,估计是控制芯片集成了,然后当然是更换最可疑的晶振啦,就是图中小的那个,写着6.000的,没有合适的备件,打起了鼠标的主意,光电鼠标里面居然有个6.0M的,三个脚而已,临时接上去,通电后优盘完全正常,修复完成。



这个就是提供零件的鼠标,标记Y1的地方就是原来晶振的地方,跟两个脚的封装不同,功能一样的,中间一个是接地而已,优盘要还给人,以后有空在买一个装回去鼠标里面。



把换下来的晶振接到鼠标上,鼠标不能用,再次证明我的判断正确。



晶振比原来的大点,但刚好能放进去,外壳结合的地方留下了写撬开的痕迹。

广州电脑优盘数据恢复中心版权所有

Tuesday, November 20, 2007

又是老歌





今天发现我和同宿舍的richard 听歌的品味差不多...呵呵

Monday, November 19, 2007

GUI Layouts for Swing and SWT: Part 3

GUI Layouts for Swing and SWT: Part 3

NetBeans Wiki: SwingJRuby

NetBeans Wiki: SwingJRuby

NetBeans IDE 6.0 - Tutorials - Using Databound Components to Access a Database

NetBeans IDE 6.0 - Tutorials - Using Databound Components to Access a Database: "Contributed by the NetBeans IDE Tutorials Team October, 2006 [Revision number: V6.0] In this tutorial, you use the NetBeans IDE to create and deploy a web application that displays master-detail data from a database that is bundled with the IDE. In the application, you select a person from a drop-down list, and the application displays a table that shows all the trip records for that person. Contents - Creating a Page That Includes a Drop Down List Component - Connecting the Component to a Database - Adding a Table Component - Modifying the SQL Query - Controlling the Rows That Are Displayed - Doing More Content on this page applies to the NetBeans 6.0 IDE Before you use this tutorial, you must have the NetBeans IDE 6.0 with Web and Java EE support installed on your system. Familiarize yourself with the basic parts of the IDE and read the Getting Started With NetBeans Visual Web JSF Development for an introduction to the NetBeans IDE's development environment."
....
....

First JRuby App in GlassFish

First JRuby App in GlassFish

Wednesday, November 14, 2007

What is BlogThis! ?

BlogThis! is an easy way to make a blog post without visiting blogger.com. Once you add the BlogThis! link to your browser's toolbar, blogging will be a snap. Or rather, a click. Clicking BlogThis! creates a mini-interface to Blogger prepopulated with a link to the web page you are visiting, as well as any text you have highlighted on that page. Add additional text if you wish and then publish or post from within BlogThis!

There are two ways to use BlogThis!: if you use Windows and Internet Explorer, you can use BlogThis! from the SendTo feature of the Google Toolbar. If you're on another browser, just drag the link below to your browser's Link bar. Then, whenever the mood strikes, click BlogThis! to post to your blog:

BlogThis! <-- drag this link to your browser's Links bar

This is what BlogThis! looks like:

BlogThis!

Saturday, November 10, 2007

买到便宜衣服啦

Levi’s® Red Wire™只提供男装,全国只配售40条,每条售价RMB 2699...

第二条 Levi’s® Red Wire 没想到居然被我掏到了,$17.99...(税后大概不到rmb150).呵呵,没想到阿没想到,在中国只能瞻仰.

哎,听说SFO的levi's全球第一店里,千分之一裤太普通了,想找条不是的太难了。。。

期待thanks giving & Christmas ...



Levi's 全球第一条兼容iPod功能的牛仔裤(图)

  Levi’s® Red Wire™ 穿上你的音乐

  创意能改变世界,更能带给我们无限惊喜。在牛仔裤的界别,Levi’s®一直领导潮流,Levi’s®的501®几乎已成为牛仔裤的代号,其后 的3D 立体剪裁亦在时装界带来革命性的突破。iPod的出现亦同样疯魔全球。现在两个充满创意的产品携手合作,成果非常令人期待。

Levi's 全球第一条兼容iPod功能的牛仔裤(图)

  要将两个极年青的元素——牛仔裤与音乐合二为一实在有点天马行空,但Levi’s® 却能将梦想变成事实,在今年秋季将在全球推出首条与iPod合作的Levi’s® Red Wire™牛仔裤,让大家将新科技穿在身上。

  Levi’s® Red Wire™牛仔裤,全国发售40条,非常珍贵。它最大的特色是将牛仔裤电子化,加入的配件能令音乐与身上的牛仔裤紧紧结合,彷如将音乐由身上的牛仔裤直接输送到耳边,更方便、更型格地享受精选的乐曲。

  Levi’s® Red Wire™在时装上融合了科技突破,当中包括﹕

Levi's 全球第一条兼容iPod功能的牛仔裤(图)

  “隐藏式iPod裤袋”

  喜欢穿松身牛仔裤的年青人往往将iPod随意放在裤袋内,但Levi’s® Red Wire™ 的设计却在裤侧特别车上一个放置iPod的有盖掩裤袋。由于是特别设计,所以穿在身上不会有突兀的感觉。在这裤袋内另车上一条末端有插头的长长绢带,将所 用的iPod插上,就能将iPod的控制功能传送到设在表袋位 (watch pocket) 的 “Hip” Controls上。

Levi's 全球第一条兼容iPod功能的牛仔裤(图)

  在表袋位的Hip Controls

  “Hip” Controls 的设计是将iPod 的四方位控制画面(开、关,前一首及后一首歌) 转化到微型笔杆式(joystick)操控器中。操控器沿用iPod的白色主调,以圆形设计置于右表袋的正中位置,背后车上魔术贴边及钮扣,脱下这个装 置,整条裤都可以水清洗。由于iPod 的控制画面已经外移,省却了经常将iPod 拿出来调整控制的麻烦。

  盒式轻便耳筒

  Levi’s® Red Wire™的包装内亦附上一个轻便盒式耳筒,将小盒背后的悬挂牌直接挂在裤头的特定位置,并将插头与“Hip Controls” 背后的插头结连,就能听到iPod的音乐,而耳筒线可以自由伸缩,整齐方便。

  毕竟Levi’s® Red Wire™是一件时装精品,设计师除了追求科技的创新,在细节上处处强调与iPod cross over的元素。Levi’s® Red Wire™的设计特色包括﹕

  · 直脚剪裁,加入3D元素,扩大裤侧位置,在前幅及后幅裤管位加车直线,方便车上可放置iPod的裤袋;

  · 洗水布料;

  · 配合iPod白色主调,全条裤都用上白色车线,裤头上方、裤脚及表袋、裤侧与前袋位都加上粗针白色车线,所有撞钉及钮扣都用上白色;

  · 白色双马皮牌,四边用红色车线,更在左下角刻意做成出线位;

  · 后裤袋放弃传统拼贴双行线的车法,以较复杂的方式在原有袋口位置先剪开窗口位,将裤袋套入以单行线车上,看来特别细致,而裤袋内收口位用红布包边车上。

Levi's 全球第一条兼容iPod功能的牛仔裤(图)


  Levi’s® Red Wire™的包装全球均统一,独立包装的胶袋内包括一条Levi’s® Red Wire™牛仔裤,更配备了多款适合不同型号的iPod外壳、一个轻便的耳筒及附有一个特别版的包装袋。

Levi's 全球第一条兼容iPod功能的牛仔裤(图)


  Levi’s® Red Wire™只提供男装,全国只配售40条,每条售价RMB 2699。

  另外Levi’s® Red Wire™也同时推出了入门版,剪裁一致仅省略了新科技的配件元素,但以每条售价RMB 899的价钱拥有一条具话题性的牛仔裤亦总算超值。(我的有配件,应该不是,难道完全版的送ipod?呵呵)

Monday, November 05, 2007

More Than I Can Say

超老歌..



手机销售的oprea

无需多言...



Saturday, November 03, 2007

asserted&deasserted

* asserted:Active-high(positive true) signals are asserted when in the high electrical state (near power potential). Active-low(negative true) signals are asserted when in the low electrical state (near ground potential)
* deasserted: A signal is deasserted when in the inactive state. Active-low signal names have "_L" appended to the end of signal mnemonic. Active-high signal name have no "_L" suffix. To reduce confusion when referring to active-high and active-low signals, the term one/zero, high/low, and true/false are not used when describing signal states

Thursday, October 25, 2007

Wednesday, October 24, 2007

Tuesday, September 11, 2007

Thursday, August 16, 2007

美国生活指南1

这集笔记讲的都是在美国常常会用到好的形容词, 想在美国混得好, 就先把这些形容词给学会吧! 我想这些形容词随时随地都用得到. 一定要把它们牢牢地记住. 这也是为什么我会选择这个主题作为开场白的原因了.

1. It's cool!
很好, 很棒!

Cool 这个字在英文里算是应用最广的字之一了, 几乎随时随地都可以听到人家在说这个字. 通常有二种场合人家会说 cool! 首先第一个场合是, 当有人说了一件不错的事情, 例如, "I am going to college this year." 你就可以说 "Cool!" 或是人家说, "I just bought a brand new car." 你还是说 "Cool!" 总之只要是好事, 你都可以说 cool! 另外一个场合会说 cool 多半是别人问你作了某件事了没, 你说作了, 别人就会说 cool. 例如别人问你 "Did you make one copy for me?" 你说, "Yes." 他就会很自然地说 "Cool." 又例如人家问你, "Did you go to watch the football game yesterday?" 你说, "Yes." 人家也会说 "Cool!" 总之, cool 这个字是无所不在的, 听到什么好事, 就说 cool 准没错.
2. It is neat!
太酷了!

我们可以这样说, neat 是 cool 的比较级, 比 cool 还再 cool 一点的就是 neat, 例如别人说他学钢琴学了十年, 像这种事你光用 cool 形容是不够的, 不如就说 neat! 会来的更贴切一点. 或是人家说, "I've been to Europe several times." 听到这种几乎不可能发生在一般人身上的事, 你也可以说 neat!

3. It is righteous!
酷毙了!

这是 cool 的最高级了, 如果一件事让你无法用 neat 形容, 那就只好用这个字了, 有人说他刚环游世界一周回来, 你就可以跟他说, "It's righteous!" 但是这句蛮少用的, 我觉得.

4. It's good.
很好.

再来介绍另一组也是常用的形容词. Good 跟 cool 很像, 都是听到什么好事时就可以脱口而出, "It's good!" 例如, 人家说, "I just got an A from that course." 你就可以轻描淡写地说 "It's good." 一般别人跟你问好时, "How are you doing?" 通常我们会回答, "I am good" 或是 "I am doing good." 这是几乎每天都会用到的对话之一.

另外 good for you 或是 good to hear 这二种句型也很常见, 例如别人跟你说他明年想要上大学, 或是说他决定从现在起每天要运动一小时, 你就可以说, "Good for you." 或是 "Good to hear."

5. That's great.
太好了.

Great 在这里就是说很棒的意思. 大家也可以想像成这个是 good 的比较级, 如果刚才那个得到一个 A 的人换作是女生的话, 我可能就会说 "That's great!" 这样别人听来可能就会更舒服一点. 同样的, 遇到别人跟你问好, 要是你今天觉得很不错的话, 你就可以说 "I am great!"

6. That's wonderful.
太棒了.

Wonderful 听来就要比 great 还要再更好一些. 如果说这个拿 "A" 的人不但是个美眉, 而且又正好有几分脸蛋的话, 就试试这句吧! "That's wonderful!" 听来是不是很舒服呢? 当然要是遇到别人跟你问好, 你回答 "I am wonderful." 那就表示你今天真的是很不错了!

曾经在广播上听到一段对话, 主持人问, "How are you today?" 听众答, "I am just good." 主持人不太满意, "Just good?" 于是那人就改口答, "I am great." 没想到主持人还是不满意, "Just great?" 那人才说, "I am wonderful." 这时主持人才真正满意, 没有继续追问下去. 由这个例子我想大家可以很清楚地看到 good, great 和 wonderful 之间程度上的关系.

7. That's incredible.
真是另人难以置信.

Incredible 算是 good 这一系列形容词的最高级了吧. 如果用到 incredible 这个字, 就表示这个东西真的是好到让你印象深刻. 例如刚才拿 "A" 的美眉不只拿了一个 A, 而且是整个学期每门课都拿 A, (straight A's) 那你可能就要说 "That's incredible." 又比方说你刚从一家很棒的餐厅用完餐出来, 你可能也会叹道, "The food was incredible!" 不过注意一下, 别人跟你问好是不能答说 "I am incredible." 的喔!

8. She is pretty.
她好漂亮.

Pretty 当作漂亮解时, 和 beautiful 程度上差不多, 但如果真的要比的话, beautiful 还是比 pretty 还要 beautiful 一点. 另外还有一种用法就是当球赛有精采的表现时, 你就可以说, Oh! That's pretty. 但是不能说, That's beautiful, 跟中文是不是有点类似呢?

9. The house is gorgeous!
这房子好漂亮.

Gorgeous 可以用来形容任何美丽的事物, 比 beautiful 跟 pretty 还要再高一级, 所以在应用上可以视情况而决定要用哪一个形容词. 例如美女的话就可以说 "She is gorgeous!"

10. It is a terrific game.
那是一场很棒的比赛.

Terrific 在字典里查到有恐怖, 可怕的意思, 可是在美国几乎没有人用这个字来当作可怕的意思, 基本上, 它就是指很棒的东西. 这个字的等级大概跟 wonderful 差不多. 例如别人问你, "Have you been seen the movie?" 你可以答说, "Yes, that's a terrific one."

11. That's awesome.
那真是太棒了.

Awesome 和 terrific 一样, 在字典里都有可怕的意思, 可是当你听到别人说这个字时, 百分之百就只有很棒的意思. 通常老美只讲 awesome 一个字, 例如别人问你, 你觉得我的家布置的如何, 你就可以答说. "Awesome!" 或是人家问你, "How do you think of that game?" 你也可以说 awesome! 表示那场比赛真的是很精采.

记得每次我去看球赛时, 每当球员有精采表现时, 运动场的字幕就会打出 AWESOME 这几个大字. 所以下次如果你看到别人也有不错的表现时, 你也可以说 "Awesome." 注意一下, terrific, awesome 跟另一个单字 excellent 基本上都是可以互换使用的.

Friday, July 27, 2007

测试听力的网站

http://www.klippel-listeningtest.de/lt/default.html
要是听不出来就可以买些便宜耳机了~

Tuesday, July 17, 2007

用转换器TF102系列——您首选的出国必备用品

市面上旅游转换插座的类型主要分为欧标、英标、国标、美标、意标及南非标等几类。

  欧洲

标准的转换插座在德国、丹麦、芬兰、法国、挪威、荷兰、波兰、葡萄牙和韩国等国家使用,特征是两个圆头;

英国标准的转换插座在英国、印度、巴基斯坦等国家和中国香港使用,特征是三个方头;

  中国标准的转换插座可以在澳大利亚、新西兰等使用,特征是三个扁头。

  美国标准的转换插座可以在美国、加拿大、墨西哥、委内瑞拉、老挝、秘鲁、尼日利亚、开曼群岛等地使用,特征是一圆两扁。

我们出国时带的电器一般都是国内标准的插头,因此在国外大多数国家无法使用,因此选用一个好的转换插座非常重要。 同方TF-102系列转换器产品具备以下特点:

一:全部采用高阻燃合金工程塑料制造。高阻燃合金工程塑料是国内转换器市场上最先进的制作原料之一。它具备用火不易点燃,就算被点燃,只要离开火源0.5秒,就自动熄灭的特点,从而保证了使用的安全。

二:采用高导通(磷)青铜电极。该材料不易发热,导电率高,能长时间保持良好弹性,切实保证产品的安全性和使用寿命。

三:一个转换器具备两个输出接口,使用、携带都很方便。

目前国内市场上出现了很多价格极其低廉的出国旅行用转换器,在这里,同方友情提醒消费者朋友们:符合使用标准的出国用旅行转换器成本不低,消费者请慎重选择产品,以免发生到了国外无 法用电的尴尬。如果忘带转换插座,可以在飞机上的免税店购买,国外航空公司一般都有卖全球通用插座的,不过价格就贵多了,大概在20欧元至30欧元之间。 同方TF-102系列转换器的市场指导价35元,优良的质量,合理的价格,无论您在哪个国家,都可以为您转换插座制式,无需您再携带多个适配器,是您首选 的出国必备用品。

产品销售电话 010-51661488

Monday, July 16, 2007

Wj52的机器

最近忙得出奇,今天又接到sWJ52的电话,他的pc又有问题了~

呵呵,什么人用什么机器,垃圾人的垃圾机器倒是他问了我个问题,3.3v电压到底给他里供电阿,
一时间还真回答不上来,最近真是白痴了,老忘事情,怀疑我的id又下降了。。。汗。。。

what more, I figured out a old article from my oooooold blog.....复习了一下,估计还是记不了太长时
间,呵呵。
文章在这里:
http://lokihan.bokee.com/4534800.html

希望能有帮助,要不就等我有空了好好给他弄一遍机器在,上次弄完后消净了1年吧。。。

给准出国留学生们泼盆冷水

翻旧贴

Friday, July 13, 2007

I need to package some third party libraries with my module. How do I do that?

Generally if it's a third party library (you didn't write it, you can't or don't want to change it), you will want to use a wrapper module. An NBM file (a module packaged for delivery over the net) can contain more than one jar, so all your libraries can be included in a single file that packages your module.

Note you can multi-select JARs in the New Library Wrapper Module wizard.

Advanced stuff

You can add libraries manually to a standard module; or add additional libraries to an existing library wrapper module. The relevant data is in the project.xml for the module. What you would do is add entries similar to this one for each JAR.


ext/hexedit.jar
release/modules/ext/hexedit.jar

Note if you want these libraries to be usable outside of the module they're declared in, then you must add the relevant packages to the list of public packages for that module.

Wednesday, July 11, 2007

IBM 工包 SK-8812

10米都能用 工包IBM无线键鼠套装到货
接收器

套装中的8812鼠标表面使用了肤质材料,细腻的磨砂质感表面带来了舒适的手感。鼠标的按键弹性强、键程适中、声音清脆,使用感受比较出色。

IBM SK-8812无线键鼠套装使用2.4GHz的无线频率,最大使用距离10米,完全可以满足用户的使用需求,做工扎实,性能也不错,有意的朋友应该留意一下。

IBM 工包 SK-8812
[参考价格] 468元
[联系方式] 鼎好电子城地下一层B1105(010-82697705)
[报价查询] 键鼠套装产品报价 IBM键鼠套装产品报价

Tuesday, July 10, 2007

JAXP 专述

清单 2. 使用 JAXP SAXParser
 //获得SAXP的一个实例
SAXParser saxParser = saxFactory.newSAXParser();
//查看是否支持 Validate 选项
boolean isValidating = saxParser.isValidating();
//查看是否支持 namespace 选项
boolean isNamespaceAware = saxParser.isNamespaceAware();
// 运用一个File 和一个SAX HandlerBase 的实例进行多种形式的语法分析
saxParser.parse(new File(args[0]), myHandlerBaseInstance);
// 运用一个 SAX InputSource实例 和一个 SAX HandlerBase 实例
saxParser.parse(mySaxInputSource, myHandlerBaseInstance);
//运用一个 InputStream 实例和一个SAX HandlerBase 实例
saxParser.parse(myInputStream, myHandlerBaseInstance);
// 运用一个 URI 和一个SAX HandlerBase 实例
saxParser.parse("http://www.newInstance.com/xml/doc.xml", myHandlerBaseInstance);
//获得底层的(封装)SAX 语法分析器
org.xml.sax.Parser parser = saxParser.getParser();
//利用底层的语法分析器
parser.setContentHandler(myContentHandlerInstance);
parser.setErrorHandler(myErrorHandlerInstance);
parser.parse(new org.xml.sax.InputSource(args[0]));

目前为止,关于 SAX 已经讲了很多,但是还没有揭示任何不寻常或令人惊奇的东西。事实上,JAXP 的功能很少,特别是当 SAX 也牵涉进来时。这很好,因为有最少的功能性意味着代码可移植性更强,并可以由其他开发人员与任何与 SAX 兼容的 XML 语法分析器一起使用,无论是免费(通过开放源码,希望如此)还是通过商业途径。就是这样。在 JAXP 中使用 SAX 没有更多的东西。如果已经知道 SAX,那么现在已经掌握大约 98% 的内容。只需学习两个新类和两个 Java 异常,您就可以开始了。如果从没使用过 SAX,那也很简单,现在就可以开始。

Sunday, July 08, 2007

AIX中级教程

AIX中级教程
================
一、IBM服务器概述
================
1、IBM服务器概述
1.1、IBM服务器家族分类
IBM的服务器经过整合后统称eServer,在eServer下又分为以下几个子系列,分别是:
xSeries--基于 Intel 架构的服务器;
基于 AMD 架构的服务器;
BladeCenter 刀片服务器 ;
pSeries--UNIX 服务器,RS/6000的后续系列(本文讨论重点) ;
iSeries--中型企业级服务器,AS/400的后续系列;
zSeries--大型主机,S390的后续系列;

1.2、P系列服务器介绍
p系列服务器是IBM在市场上主推的Unix服务器系列,整个P系列服务器按性能从高到低主要有以下几个型号:
p610:1-2 路高扩展性入门级服务器
p630:1-4路POWER4+ UNIX服务器,支持动态逻辑分区
p650:1-8路UNIX服务器,采用POWER4芯片,支持动态逻辑分区
p670:4-16路处理器的新生代UNIX服务器
p690:8-32路POWER4双CPU芯片,单机提供16个逻辑分区

这三个型号的服务器又可以分为以p650为代表的应用服务器和以p670/690为代表的企业级服务器。
由于现在的系统多是采用三层或多层结构,以中间件为主要应用的应用服务器一般采用横向扩展的方式,
也就是加服务器的方式来提高性能。

而以Oracle数据库和SAP系统为代表的企业服务器一般采用纵向扩展的方式,也就是加CPU和内存来提高性能。
所以在选型的时候要注意两者的区别,规划好企业的系统架构。

1.3、IBM的分区技术
分区技术是IBM和HP系列区别比较大的地方,HP主要是硬件分区而IBM主要是软件分区--动态逻辑分区。
IBM的动态逻辑分区其本质是一种软件分区,在p670/690系列上最多可以做到16个分区,颗粒度可达到1个cpu,并且每个分区可以运行不
同的操作系统。

2.1、HP系列服务器介绍
HP在号称是世界Unix服务器市场占有率第一,据考证确有其事。
下面介绍这次选型所遇到的3款服务器:
rp7410:2~8 CPUs
rp8400:2~16 CPUs
Superdome:2~64 CPUs
2.2、HP的分区技术
HP和IBM在分区技术上有较大区别,IBM是软分区而HP是硬分区。两家采用不同的分区技术是和系统结构有关,HP是基于Cell板的体系结构,
每块Cell板上有4个cpu插座,每个硬件分区的最小单位是一个Cell板。这种分区方式不是很灵活,但是由于是硬分区,普遍认为比软分区
要稳定可靠。不过硬件分区的缺点就是不灵活,如果要改变分区系统就必须重启。HP也有软件分区,不过Oracle的许可证机制不能识别HP
的软分区只认识硬分区中的cpu数量,按cpu购买Oracle许可证的用户可要注意了。不过据IBM说Oracle能够正确识别IBM的软分区。
2.3、HP系统软件
HP在软件方面不如IBM那么有实力,HP除了自己的操作系统HP-UX11i之外没有别的其他软件,不过这在TPC测试中倒是帮了忙,在HP上跑的
系统都是第三方的软件,让人觉得它的得分比较客观。而IBM则可以全部都用自己的东西跑测试。在这一点上,不知道该说IBM不够开放还
是够强势。
2.4、HP的CPU发展规划
HP现在有四类CPU,分别是Alpha、PA-RISC、IA-32/64和Itanium2。不过据HP自己介绍说,目前Alpha系列已经不再开发,将于2005年停产。
而PA-RISC系列到目前的875MHz也已经是最高主频了,下一代PA-RISC将会采用类似于IBM的多内核技术在一块芯片中集成2路CPU。HP将来会
全面转向Itanium2系列CPU,并且保证从PA-RISC到Itanium2的二进制兼容。

=============
二、6000系统管理
=============
1.设置图形终端,在服务器端设置DISPLAY环境变量
^^客户端IP ^可以在客户端显示图形的用户
|| |
export DISPLAY=192.168.2.250:0.0
在192.168.2.250客户机安装有xwin server或其它图形软件,再登陆到服务器上,执行一些图形命令,就会将图形显示在192.168.2.250的客户终端上了

可以用xhost +将当前本机设置为图形终端服务器
xhosts + 192.168.2.250,设置192.168.2.250为图形终端服务器
xhosts - 192.168.2.250 去除该机器作为图形服务器
可以在图形终端登陆到服务器中输入xclock做图形测试

2.su user 与 su - user的区别
su user使用先前用户的环境变量



==============
三、修改内核参数
==============
smit chgsys建议不做

4.
/var/adm/sulog
每次用户使用了su命令,都可以在该文件中查找到,可以用他来发现某些用户的不良企图,及作案时间
+表示登陆成功
-表示登陆失败
cat /var/adm/sulog
su 06/30 09:35 + pts/1 root-thomasc
在06/30 09:35某用户从root登陆到thomasc用户下,并成功登陆
su 06/30 09:45 - pts/1 ostach-root
06/30 09:45某用户从ostach下登陆到root用户下失败

5.
/var/adm/wtmp
可以看所有的用户的登陆信息
who /var/adm/wtmp

adm用户无法登陆,但是可以su - adm来使用adm权限
如在adm下的crontab中有记录sar历史

6.smit,smitty工具
smit图形化
smitty字符化
smit 操作类型
smit -x 没有执行权限
7.ODM
对象库管理
保存关于设备、软件、机器配置等信息

8.非bash,使用快捷方式
set -o vi
jk...作为快捷键


9.语言环境
launch

10.wsm
web_based system manager

11.aix只运行安装在P6000(POWER CPU)系列的及安腾CPU的系统上

12.oslevel
操作系统版本号
bash-2.05a$ oslevel
5.1.0.0
+====================+
|四、系统的启动和关机|
+====================+
1.默认以normal模式启动
按F1到sms模式(system management services)
设置firmware(bios)+启动列表

2.丢失root密码,可以改变启动模式,从cd来启动,恢复root密码
也可以使用mksysb来恢复

你需要进入维护模式

3.
alog -o -t boot
查看启动信息

4.启动信息
alog -o -t boot
cat /var/adm/ras/bootlog

5.NIM
网络安装

6.运行级别

0-9 当 init 命令更改为运行级别 0-9 时,它杀死当前运行级别的所有进程,然后重新启动与新运行级别相关的任何进程。
0-1 为操作系统保留以供将来使用。
2 缺省运行级别。
3-9 可以根据用户的首选项来定义。
a、b、c 当 init 命令请求更改为运行级别 a、b 或 c 时,它不杀死当前运行级别的进程;它仅仅启动用新的运行级别分配的任何进程。
Q、q 告知 init 命令重新检查 /etc/inittab 文件。

系统启动时默认的级别由inittab中的initdefault指定
init:2:initdefault:

etty 进程特别重要,因为它控制系统控制台和其它登录的终端线访问。请确保在所有运行级别中启用了 getty 进程。


init 运行级别会运行相应目录下的S/K脚本
如:
init 4
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d ==>执行该目录下的启动脚本
/etc/rc.d/rc5.d
/etc/rc.d/rc6.d
/etc/rc.d/rc7.d
/etc/rc.d/rc8.d
/etc/rc.d/rc9.d

以 K 开头的脚本是停止脚本,而以 S 开头的脚本是启动脚本。

如:
bash-2.05b$ more S70lpd
#!/bin/ksh

##################################################
# name: S70lpd
# purpose: sample script that start or stop lpd daemon.
##################################################

case "$1" in
start )
startsrc -s lpd
;;
stop )
stopsrc -s lpd
;;
* )
echo "Usage: $0 (start | stop)"
exit 1
esac

7.inittab
格式=id:runlevel:action:command
tty002:2:respawn:/usr/sbin/getty /dev/tty2
:: ==>任何模式都执行
sysinit ==>该进程在系统启动时运行一次
initdefault ==>指定系统的默认运行等级
wait ==>只激活一次,init等待该进程,直到该进程结束。
powerfail ==>init进程收到SIGPWR信号下运行的进程,PS电源在电源发生问题时会向该进程发送SIGPWR信号
respawn ==>一直运行服务,当该进程终止时自动启动。
once ==>该进程只运行1次
off ==>不激活
在rc.boot 3阶段
l6:6:wait:/etc/rc.d/rc 6 在改变level时执行的脚本.wait表示,只有执行完这个程序,并结束后才会执行下一行.

常用下面的命令来查看和修改该文件
lsitab Lists records in the /etc/inittab file.
mkitab Adds records to the /etc/inittab file.
rmitab Removes records from the /etc/inittab file.



8.关机
shutdown
shutdown +2 2分钟后关机
shutdown -Fr强制关机并重起
shutdown -m 单用户关闭
8.关机顺序
/etc/rc.shutdown
杀掉用户进程
停止系统服务进程
卸载文件系统
停止处理器

9.错误信息
errpt
errpt -a 具体细节
errclear 0 --清理信息
正常信息也可以由errpt输出


10.启动停止服务
查服务状态
lssrc -g 组名

启动一个系统服务
startsrc -s lpd
启动telnet
startsrc -t telnet

ftp->telnet...=>inetd
vi /etc/inetd.conf

修改后要执行refresh

停止服务stopsrc -s ldp
stopsrc -t telnet

11.kill
默认是-1:即等待进程运行完了,再杀
-9:强制杀进程

12.自动shutdown脚本
vi /etc/rc.shutdown

13.改变系统环境
语言环境
locale

14.stty -echo
不显示信息到屏幕

+=================+
|五、AIX内存优化 |
+=================+
http://publib.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixbman/prftungd/2365c71.htm


+=================+
|六、DEVICES |
+=================+
配置设备
1.使用cfgmgr命令可以配置设备
2.b块设备->文件系统->有os buffer
c字符设备->裸设备
任何逻辑卷都对应字符设备和块设备

3.
预定义设备:
所有系统可能支持的设备
自定义设备:
所有在系统中已经定义的或者已经安装有效的设备

4.
lsdev
-P -H查看预定义设备的情况
-Pc 查看指定的自定义设备的情况
-C 查看自定义设备的情况
-bash-2.05b$ lsdev -P -H
class type subclass description

logical_volume vgtype vgsubclass Volume group
logical_volume lvtype lvsubclass Logical volume
lvm lvdd lvm LVM Device Driver
aio aio node Asynchronous I/O
pty pty pty Asynchronous Pseudo-Terminal
memory L2cache_rspc sys L2 Cache
memory totmem sys Memory

...


-bash-2.05b$ lsdev -C
sys0 Available 00-00 System Object
sysplanar0 Available 00-00 System Planar
pci0 Available 00-400000000110 PCI Bus
pci1 Available 00-400000000111 PCI Bus
pci2 Available 00-400000000112 PCI Bus
5.lsattr
查看系统所有内核信息
lsattr -EH -l sys0
sys0是内核
-bash-2.05b$ lsattr -EH -l sys0
attribute value description user_settable

keylock normal State of system keylock at boot time False
maxbuf 20 Maximum number of pages in block I/O BUFFER CACHE True
maxmbuf 0 Maximum Kbytes of real memory allowed for MBUFS True
maxuproc 128 Maximum number of PROCESSES allowed per user True
autorestart false Automatically REBOOT system after a crash True
iostat false Continuously maintain DISK I/O history True
realmem 4194304 Amount of usable physical memory in Kbytes False


查看内存使用情况
bash-2.05a$ lsattr -EH -l sys0 -a realmem
attribute value description user_settable

realmem 8388608 Amount of usable physical memory in Kbytes False

6.lscfg -v
所以设备配置信息
-bash-2.05b$ lscfg -v
INSTALLED RESOURCE LIST WITH VPD

The following resources are installed on your machine.

Model Architecture: chrp
Model Implementation: Multiple Processor, PCI bus

sys0 00-00 System Object
sysplanar0 00-00 System Planar
mem0 00-00 Memory
proc0 00-00 Processor

Device Specific.(YL)........U0.1-P1-C1

L2cache0 00-00 L2 Cache
proc1 00-01 Processor

Device Specific.(YL)........U0.1-P1-C1

pci0 00-400000000110 PCI Bus

Device Specific.(YL)........U0.1-P2

isa0 1G-18 ISA Bus

Device Specific.(YL)........U0.1-P2

fda0 01-D1 Standard I/O Diskette Adapter

Device Specific.(YL)........U0.1-P2/D1

fd0 01-D1-00-00 Diskette Drive
siokma0 01-K1 Keyboard/Mouse Adapter

Device Specific.(YL)........U0.1-P2/K1

sioka0 01-K1-00 Keyboard Adapter
kbd0 01-K1-00-00 PS/2 keyboard
sioma0 01-K1-01 Mouse Adapter
mouse0 01-K1-01-00 3 button mouse
sa0 01-S1 Standard I/O Serial Port

Device Specific.(YL)........U0.1-P2/S1

sa1 01-S2 Standard I/O Serial Port

Device Specific.(YL)........U0.1-P2/S2

sa2 01-S3 Standard I/O Serial Port

Device Specific.(YL)........U0.1-P2/S3

sa3 01-S4 Standard I/O Serial Port

Device Specific.(YL)........U0.1-P2/S4

pci1 00-400000000111 PCI Bus

Device Specific.(YL)........U0.1-P2

pci3 1Y-10 PCI Bus

Device Specific.(YL)........U0.1-P2

scsi0 1Z-08 Wide/Ultra-3 SCSI I/O Controller

Device Specific.(YL)........U0.1-P2/Z1

cd0 1Z-08-00-1,0 16 Bit LVD SCSI DVD-ROM Drive (4700
MB)

Manufacturer................IBM
Machine Type and Model......DROM00203
ROS Level and ID............7R43
Device Specific.(Z0)........058002028F000030
Part Number.................53P1834
EC Level....................H63162
FRU Number..................53P2799

hdisk0 1Z-08-00-8,0 16 Bit LVD SCSI Disk Drive (146800
MB)

Manufacturer................IBM
Machine Type and Model......IC35L146UCDY10-0
FRU Number..................00P3835
ROS Level and ID............53323846
Serial Number...............ECVT4UZC
EC Level....................H32224
Part Number.................08K0273
Device Specific.(Z0)........000003029F00013A
Device Specific.(Z1)........07N4972
Device Specific.(Z2)........0068
Device Specific.(Z3)........04064
Device Specific.(Z4)........0001
Device Specific.(Z5)........22
Device Specific.(Z6)........

hdisk1 1Z-08-00-9,0 16 Bit LVD SCSI Disk Drive (146800
MB)

Manufacturer................IBM
Machine Type and Model......IC35L146UCDY10-0
FRU Number..................00P3835
ROS Level and ID............53323846
Serial Number...............ECVTXWDC
EC Level....................H32224
Part Number.................08K0273
Device Specific.(Z0)........000003029F00013A
Device Specific.(Z1)........07N4972
Device Specific.(Z2)........0068
Device Specific.(Z3)........04065
Device Specific.(Z4)........0001
Device Specific.(Z5)........22
Device Specific.(Z6)........


7.rmdev
rmdev -dl 从设备定义状态到预定义状态
或从设备有效状态到预定义状态
rmdev -l 从设备有效状态到自定义的定义状态
也可以使用cfgmgr

8./dev/cd0是cdrom设备
可以用mount -rv cdrfs /dev/cd0 /cdrom

9.设备号
通常在失败时显示在LED中

00 资源附加到处理器
01 资源附加到ISA
04 资源附加到PCI
|
AB -CD -EF -GH -->端口号
|
CONNECTOR ID



+=================+
|七、存储 |
+=================+
PP:物理分区:分配给卷组的物理分区大小
LP:逻辑分区:PP的指针,通过他可以将LV跨越不同的磁盘

LV:逻辑卷
PV:物理卷

VG:卷组:类似表空间

1.QUORUM
每个磁盘上都有一个及以上的VGDA(卷组描述区)
QUORUM也就是说一个卷组中的必须超过>=51%以上的VGDA有效才能使用卷组
通常可以不设置,对于做RAC,或者MIRROR不应该做

2.AIX规定
/dev/hd4 /
/dev/hd2 /usr
/dev/hd9var /var
/dev/hd3 /tmp
/dev/hd1 /home
/proc /proc
/dev/hd10opt /opt
/dev/hd6 /pagespace&dump device
/dev/hd7 dump device
/dev/hd8 /log
/dev/hd5 bootlv


3./etc/filesystem
4.mount
...
5.lsfs
查看文件系统
6.lsvg
lsvg -l rootvg
查看卷组中的lv
-bash-2.05b$ lsvg -l rootvg
rootvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
hd5 boot 1 2 2 closed/syncd N/A
hd6 paging 16 32 2 open/syncd N/A
hd8 jfslog 1 2 2 open/syncd N/A
hd4 jfs 1 2 2 open/syncd /
hd2 jfs 12 24 2 open/syncd /usr
hd9var jfs 1 2 2 open/syncd /var
hd3 jfs 2 4 2 open/syncd /tmp
hd1 jfs 1 2 2 open/syncd /home
hd10opt jfs 33 66 2 open/syncd /opt
lg_dumplv sysdump 4 4 1 open/syncd N/A
oracleinstall jfs2 64 64 1 open/syncd /oracle
loglv01 jfs2log 1 1 1 open/syncd N/A
|
是否镜像,PV的个数

-bash-2.05b$ lsvg -p datavg --查看物理磁盘
datavg:
PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION
hdisk2 active 546 333 19..00..96..109..109
hdisk3 active 546 334 07..00..109..109..109
||
^^
柱面分布
中间部分性能较好
早期的小硬盘外层较好

lsvg -o --只显示已经varyonvg(激活的)卷组


-bash-2.05b$ lsvg datavg --查看卷组的细节
VOLUME GROUP: datavg VG IDENTIFIER: 0052db8d00004c00000000fe2103f6b6
VG STATE: active PP SIZE: 256 megabyte(s) --物理分区的大小
VG PERMISSION: read/write TOTAL PPs: 1092 (279552 megabytes)
MAX LVs: 256 FREE PPs: 667 (170752 megabytes) --空闲空间
LVs: 33 USED PPs: 425 (108800 megabytes)
OPEN LVs: 22 QUORUM: 1 --没有使用
TOTAL PVs: 2 VG DESCRIPTORS: 3
STALE PVs: 0 STALE PPs: 0
ACTIVE PVs: 2 AUTO ON: yes
MAX PPs per PV: 1016 MAX PVs: 32
LTG size: 128 kilobyte(s) AUTO SYNC: no
HOT SPARE: no

7.lslv lvname
查看逻辑卷
lslv -l
-bash-2.05b$ lslv -l rsino_indx02
rsino_indx02:N/A
PV COPIES IN BAND DISTRIBUTION
hdisk3 016:000:000 0% 016:000:000:000:000
||
^^
16个pp

-bash-2.05b$ lslv -m hd3 --查看mirror
hd3:/tmp
LP PP1 PV1 PP2 PV2 PP3 PV3
0001 0224 hdisk0 0228 hdisk1 --使用了两个磁盘
0002 0253 hdisk0 0253 hdisk1

-bash-2.05b$ lslv -m rsino_indx02
rsino_indx02:N/A
LP PP1 PV1 PP2 PV2 PP3 PV3
0001 0031 hdisk3
0002 0032 hdisk3
0003 0033 hdisk3
0004 0034 hdisk3
0005 0035 hdisk3
0006 0036 hdisk3
0007 0037 hdisk3
0008 0038 hdisk3
0009 0039 hdisk3
0010 0040 hdisk3
0011 0041 hdisk3
0012 0042 hdisk3
0013 0043 hdisk3
0014 0044 hdisk3
0015 0045 hdisk3
0016 0046 hdisk3
8.lspv
查看物理卷
-bash-2.05b$ lspv --查看物理磁盘
hdisk0 0052db8d1d6c6d1a rootvg
hdisk1 0052db8d20ff9621 rootvg
hdisk2 0052db8d2103e69d datavg
hdisk3 0052db8d2106f554 datavg
-bash-2.05b$
-bash-2.05b$
-bash-2.05b$
-bash-2.05b$ lspv hdisk0 --查看某个磁盘的细节
PHYSICAL VOLUME: hdisk0 VOLUME GROUP: rootvg
PV IDENTIFIER: 0052db8d1d6c6d1a VG IDENTIFIER 0052db8d00004c00000000fe1e0f6c5e
PV STATE: active
STALE PARTITIONS: 0 ALLOCATABLE: yes
PP SIZE: 256 megabyte(s) LOGICAL VOLUMES: 11
TOTAL PPs: 546 (139776 megabytes) VG DESCRIPTORS: 2
FREE PPs: 473 (121088 megabytes) HOT SPARE: no
USED PPs: 73 (18688 megabytes)
FREE DISTRIBUTION: 109..88..58..109..109
USED DISTRIBUTION: 01..21..51..00..00

9.增加卷组
smit mkvg
create vg concurrent capable 在rac/ops设置成YES
LTG logical trace group size --用于调整磁盘IO性能的最大化磁盘允许的传输大小
10.reducevg
去除卷组
smit reducevg2
如果卷组中没有了物理磁盘,可以直接删除卷组
reducevg -f volume group pvname
可以删除卷组中的一个PV
11.extendvg
增加卷组中一个磁盘
extendvg -f vgbane pvname

12.chvg
smit chvg改变一个卷组
13LTG
-bash-2.05b$ lquerypv -M hdisk2
256K

14varyonvg
激活vg
15varyoffvg
offline vg
在export vg时必须先offlinevg

16. mirror vg
smit mklvcopy

注意输入new total number of logical partition copies正确
做完后进行syncvg
syncvg可以修改存储结构,比如lp的指向,存储的柱面

17migratepv
删除pv中的内容
相当于format

18.lvmstat -v datavg

+=================+
|八、文件系统 |
+=================+
1.ls
ls -li /home
查看inode信息
2.fragment size
可以在建立文件系统时指定fragment size,
+==============+
| |4096byte|
+==============+
|2000b|
used
如果fragment size=4096,那么其他文件就不能使用该页了
如果fragment size=1024,那么还可以被使用

3.journal log只记录inodes

4.fuser
可以查看某个目录或者文件,哪位用户和进程在使用
bash-2.05b$ fuser /oracle/product/9.2.0
/oracle/product/9.2.0: 36372c
fuser -k /home/... --可以直接杀除该用户



+=================+
|九、空间管理 |
+=================+
/var/spool
/var/adm/wtmp
/$HOME
...
1.skulker
清理不想要使用的文件


2.空间使用排序
du -sk *|sort -n +1

3.fsck
类似于scandisk

+=================+
|十、交换分区 |
+=================+
1.在大于2G内存的通常交换区可以是内存的大小
2.小于2G的内存的通常交换区可以是内存的2倍大小
3.要放到速度最快的磁盘和柱面
4.一个交换区不能跨越pv,但是系统可以有多个交换分区,分布在不同的pv
5.可以用svmon来监控pagespace
6.lsps -a
查看swap
%used 使用瓶径 70%~80%
7.mkps
smit mkps建立交换区
8.chps
smit chps修改交换区
9.
swapoff /dev/pagename
||
^^
rmps pagename
删除交换区

+=================+
|十一、AIX安装 |
+=================+
加电
装入光盘
按F5设置启动序列为光驱

进入安装界面 =>选择安装设置选项
==============
cdromd守护进程
==============
lssrc -s cdromd


查看系统内核
$ bootinfo -y [reports the hardware type]
$ bootinfo -K [reports the kernel type]

另一种方法
$ ls -l /usr/lib/boot
lrwxrwxrwx 1 root system 21 Aug 02 2004 unix -> /usr/lib/boot/unix_mp --link的是mp
-r-xr-xr-x 1 root system 8386253 Oct 02 2003 unix_64
-r-xr-xr-x 1 root system 8070143 Oct 02 2003 unix_mp

unix_mp是32位多CPU
unix_64是64位多CPU
unix_up是32位单CPU


64位的软件也可以用在32系统
1.包的定义
lpp(bos)产品集合=>文件集的集合=>文件集=>后缀
|... |...
bos=>基本的操作系统集
后缀:
adt ==== 应用开发包
com
data ==== /usr/share中的文件集
dev
diag ==== 诊断文件集
fnt ==== 字体集
info
help
loc
mp
msg
rte
smit
ucode
up

2.查找应用包patches
lslpp -l bos.*
3.instfix
instfix 命令允许安装一个或一套补丁而不用知道任何信息,除了标识该补丁的“授权程序分析报告”(APAR)号或其它唯一关键字。
任何补丁都可能有组成该补丁的一个或多个文件集。补丁信息组织在安装介质的目录表(TOC)内。在安装补丁后,它的信息就保存
在系统中的一个补丁数据库里。
instfix 命令也可以用来确定是否要在系统中安装补丁。

注:instfix 命令的返回码记录在 /usr/include/inuerr.h 文件中,该文件随 bos.adt.include 文件集一起提供。
也有为 1 的一般错误代码和一个来自 /usr/include/errno.h 的对 EACCES(13)的引用。

-a 显示与补丁相关的症状文本。可以与 -i、-k 或者 -f 标志相结合。
-c 显示以冒号隔开的输出以供 -i 标志使用。输出包括关键字名、文件集名、需要的级别、安装的级别、状态和摘要。状态值是:
-
当机级别
=
正确级别
+
取代
!
不安装
-d Device 指定输入设备。所有的标志都要求这一点,除了 -i 和 -a。
-F 除非所有与补丁相关的文件集都安装了,否则返回失败。
-f 文件 指定包含关键字或者补丁的输入文件。用 -(破折号)作为标准输入。-T 标志为 -f 生成了一个适当的输入文件格式。
-i 显示是安装了补丁还是关键字。用 -k 或者 -f 标志来调用这个标志。当使用 -i 标志时不应尝试安装。如果没有指定 -k 或者 -f 标志,就会显示所有已知的补丁。
-k Keyword 指定要安装的 APAR 号或者关键字。可以输入多个关键字。输入时带 -k 标志的关键字列表必须包含在引号里面并且用空格隔开。
-M Platform 指出任何 Platform 的值都可以用来列出那个平台的补丁。
R
仅仅指定基于 POWER 的平台补丁。
N
指定一个中立补丁,也就是说这个补丁不限制在基于 POWER 的平台上。
A
指定所有的补丁。
-p 显示与关键字相关的文件集。这个标志和 -k 或者 -f 标志一起使用。当使用 -p 标志时,不应尝试安装。
-q 指定安静方式。这个标志和 -i 标志一起使用。如果使用 -c 标志,那么就不会显示标题,否则就不会有输出。
-s String 在包含指定字符串的介质上查找和显示补丁。
-S 当安装设备是 CD-ROM 时要禁止多个卷处理。从 CD_ROM 安装总被当作一个独立的卷,即使 CD-ROM 包含多个 CD 卷设置的信息。如果设置了 INU_SINGLE_CD 环境,则执行对多卷处理的相同的禁止。
-T 显示目前在介质上所有的补丁列表。
-tType 它和 -i 标志一起使用以限制查找为一个指定的类型。有效类型是:
f
补丁
p
预防性维护
-v 和 -i 标志一起使用以指定详细方式。显示和补丁或关键字相关的每个文件集的信息。


instfix -i --查看所有的patch
检查patch包信息
instfix -ivk IY30927

安装patch
instfix -k IX38794 -d /dev/rmt0.1 --安装包的位置

+=================+
|十二、备份与恢复 |
+=================+
磁带设备
rmt0

磁带控制命令
tctl
倒带操作

裸设备不能备份,只能DD

1.mksysb
用于备份rootvg
没有mount成文件系统的不能备份
保存了lv的策略
保存了pagespace定义
保存了节点块大小
2./image.data=>rootvg
可以使用编辑该文件来改变lv/vg的物理属性

bash-2.05b$ cat image.data
...
lv_data:
VOLUME_GROUP= rootvg
LV_SOURCE_DISK_LIST= hdisk0 hdisk1
LV_IDENTIFIER= 005fee6c00004c00000000fe1dec4560.1
LOGICAL_VOLUME= hd5
VG_STAT= active/complete
TYPE= boot
MAX_LPS= 512
COPIES= 2
LPs= 1
STALE_PPs= 0
INTER_POLICY= minimum
INTRA_POLICY= edge
MOUNT_POINT=
MIRROR_WRITE_CONSISTENCY= on/ACTIVE
LV_SEPARATE_PV= yes
PERMISSION= read/write
LV_STATE= closed/syncd
WRITE_VERIFY= off
PP_SIZE= 256 ==>24 修改该值时,恢复操作可以改变lv的属性
SCHED_POLICY= parallel
PP= 2
该文件可以使用mkszfile来创建

3.mkszfile
4./bosinst.data
该文件可以CP到MKSYSB所建立的磁带上,使得不同的硬件可以使用该备份

5.smit savevg
非rootvg的备份
/vg.data

6.rootvg的恢复
进入安装维护模式
选择3.start Maintenance Mode for System Recovery
=>install from a system Backup
=>tape/scsi/4mm/2GB /dev/rmt0
=>Change/Show Installation Settings and Install
=>Disk where you want to install
需要预先指定启动设备列表
bootlist -om normal 可以显示

7. 非rootvg恢复
smit restvg

8.查看备份信息
# lsmksysb -B

9.mkcd 命令

用途
从 mksysb 或 savevg 备份映像创建一个(或多个)多卷的 CD。

10.restvg
restvg 命令恢复用户卷组以及所有它的容器和文件,正如 /tmp/vgdata/vgname/vgname.data 文件中指定的那样(其中 vgname 是卷组名),该文件包含在 savevg 命令创建的备份映像中。

restvg 命令恢复用户卷组。 bosinstall 例程重新安装 root 卷组(rootvg)。如果 restvg 命令在备份映像遇到 rootvg 卷组, restvg 命令退出且带有一个错误。

如果 yes 值已经在 /tmp/vgdata/vgname/vgname.data 文件的 logical_volume_policy 节的 EXACT_FIT 字段指定,restvg 命令使用映射文件保持每个逻辑卷的物理分区的放置。目标磁盘必须是相同大小或者更大,然后源磁盘在 vgname.data 文件的 source_disk_data 节指定。

注:
在备份映像查看文件或从备份映像恢复个别的文件,用户必须分别使用带有 -T 或 -x 标记的 restore 命令。(参考 restore 命令获得更多信息。)
标志

-b Blocks 指定读入到单一输入操作的 512 字节块的数量。如果参数未指定,restore 命令使用缺省值 100。至磁带设备的物理传输越大,值越大。
DiskName... 指定要使用的设备名而不是在 vgname.data 文件中列出的磁盘设备。目标磁盘设备必须定义为空物理卷;即,它们必须包含物理卷标识符并且不属于卷组。如果目标磁盘设备是新的,则必须使用 mkdev 命令将它们添加到系统。如果目标磁盘设备属于卷组,则必须使用 reducevg 命令从卷组中将它们除去。
-d FileName -d 标志是可选的标志,如果指定,必须后跟文件名。该文件用来作为 vgname.data 文件使用,而不是正在恢复的备份映像所包含的文件。文件名既可以由相对路径名指定,又可以由绝对路径名指定。
-f Device 指定备份介质的设备名。缺省值是 /dev/rmt0。
-l 显示关于卷组备份的有用信息。
该标志需要 -f device 标志。该标志导致 restvg 显示信息,如卷组、备份的日期和时间、从备份系统得到输出的 uname、操作系统级别、推荐的维护级别、以兆字节为单位的备份大小以及以兆字节为单位的备份压缩大小。压缩大小是所有文件系统上数据的大小。全部的大小是每个文件系统(未用的 + 数据)的整个大小。 -l 标志也显示逻辑卷和备份卷组的文件系统信息,这等价于运行“lsvg -l vgname”。

-n 指定忽略存在的 MAP 文件。-n 标志重设 vgname.data 文件的 logical_volume_policy 节中的 EXACT_FIT 字段的值。
-P PPsize 指定每个物理分区的兆字节数。如果未指定, restvg 依据正在恢复的最大磁盘,为 PPsize 使用最优值。如果该值与在 vgname.data 文件中指定的大小不同,在每个逻辑卷的分区数将根据新的 PPsize 适当的改变。
如果对于磁盘大小来说,PPsize 指定的值比适当的值小,那么使用较大的 PPsize。

如果对于磁盘大小来说,PPsize 指定的值比适当的值大,那么使用指定的较大的 PPsize。

-q 指定在卷组映像恢复以前,通常的提示不显示。如果该标志未指定,提示显示卷组名和目标磁盘设备名。
-r 仅仅重新创建卷组结构。这允许从备份创建(为指定的备份 FileName 或 Device)卷组、逻辑卷和文件系统而不恢复任何文件或数据。这对于使用第三方软件恢复数据和仅在适当的位置需要所有的 AIX 逻辑卷结构的用户有用。
注:
或者使用 -f Device 标志或者使用 -d FileName 标志。这是因为 restvg 需要备份映像或 vgname.data 文件来获得重新创建期望的卷组的逻辑卷结构所需要的所有信息。
-s 指定以尽可能小(可以容纳文件系统)的磁盘空间创建逻辑卷。该大小由 vgname.data 文件 (其中 vgname 是卷组名)的 lv_data 节的 LV_MIN_LPS 字段值指定。
-s 标志重设 vgname.data 文件的 logical_volume_policy 节的 SHRINK 和 EXACT_FIT 字段的值。 -s 标志与 SHRINK=yes 和 EXACT_FIT=no 将引起的效果相同。

如:
从 /dev/rmt1 设备恢复卷组映像到 hdisk2 和 hdisk3 磁盘,请输入:
restvg -f/dev/rmt1 hdisk2 hdisk3
11.文件的备份
backup [-u] [-level] [-f device] filesystem
backup 命令在备份介质上(比如磁带或软盘)上创建文件的副本。副本的格式是以下两种备份格式之一:

使用 -i 标志按名称来备份的特定文件。
使用 Level 和 FileSystem 参数按内节点来备份的整个文件系统。
如果不带任何参数发出 backup 命令,它缺省为级别 9 的内节点备份,将根文件系统备份到 /dev/rfd0 设备。缺省语法是:


-9uf/dev/rfd0 /dev/rhd4 缺省备份设备是 /dev/rfd0。如果指定的标志不适合指定的备份设备,则 backup 命令显示一条错误消息并继续进行备份。

单个备份可涉及多个卷。


注:
运行 backup 命令将使先前存储于所选输出介质上的所有资料都丢失。
如果在系统备份过程中修改某一文件,则该归档文件的数据完整性将受到损害。在系统备份过程中,请将系统活动保持为最少。
如果备份到设备块大小设置为 0 的磁带机,则除非缺省写大小和 backup 命令一起使用,否则很难再从磁带恢复数据。当磁带机的块大小为 0 时,backup 命令的缺省写大小可由 restore 命令读取。
换句话说,当磁带机的块大小为 0 的时候,不应指定 -b 标志。如果指定 backup 命令的 -b 标志,且它和缺省大小不同,则当从磁带恢复归档的文件时,必须用 restore 命令的 -b 标志来指定相同的大小。

按名称备份文件
要按名称备份,请使用 -i 标志。backup 命令从标准输入读取要备份的文件的名称。

文件类型可以是特殊文件,常规文件或目录。当文件类型是目录时,仅备份目录。目录下的文件不备份,除非明确指定备份它们。


注:
使用与归档的文件相同的路径名称来恢复文件。所以,要创建可从任何路径恢复的备份,请使用您要备份的文件的全路径名。
当备份需要多个卷的文件时,不要从键盘输入文件名称的列表。反而应从一个文件将列表传送或重定向到 backup 命令。
当从键盘输入文件名称且当备份进程需要新的磁带或软盘时,命令将“丢失”任何已经输入但还未备份的文件的名称。要避免这个问题,请仅在先前文件的归档的消息显示之后输入每个文件的名称。归档的消息由字符 a 后跟文件名称构成。

如果指定 -p 标志,则只打包小于 2GB 的文件。
按内节点备份文件系统
要按内节点备份文件系统,请指定 -Level 和 FileSystem 参数。当和 -u 标志结合使用时,-Level 参数提供维护每个文件系统的增量备份的层次结构的方法。请指定 -u 标志并将 -Level 参数设置为 n 来仅备份自从 n-1 级别备份以后修改过的那些文件。
有关每个增量备份日期、时间和级别的信息被写入 /etc/dumpdates 文件。可能的备份级别是 0 到 9。级别 0 备份归档文件系统中的所有文
件。如果 /etc/dumpdates 文件不包含特定文件系统的备份信息,则指定将使该文件系统中的所有文件被归档的任一级别。

FileSystem 参数可指定物理设备名称(块或原始名称)或其上安装文件系统的目录的名称。缺省文件系统是根(/)文件系统。

为了执行按内节点进行的备份,用户必须具有访问文件系统设备(比如 /dev/hd4)的读访问权或具有“备份”权限。


注:
在按内节点备份文件系统之前,首先必须卸装它。如果试图备份已安装的文件系统,则显示警告消息。backup 命令继续,但创建的备份可能包含由备份操作过程中文件系统内可能发生的更改而造成的不一致性。
按内节点备份文件系统将截断具有超过 65535 的 uid 或 gid 的文件的 uid 或 gid。在恢复后,这些文件可能对于 uid 和 gid 属性具有不同的值。要正确保留这些值,请始终按名称备份具有大于 65535 的 uid 或 gid 的文件。
当按内节点备份时,仅可以归档 JFS(日志文件系统)文件系统。请按文件名称或通过使用其它归档命令(比如 pax、tar 或 cpio 命令)来备份任何非 JFS 文件系统。


============
增量备份
-0 全备份
-1,-2...备份级别
level
0 ================
^^ ^^
|| ||
1 ===== ||
^^ ||
|| ||
2 ===== ||
1 ===============
backup -u -1 -f /dev/rmt0 /home

12./etc/dumpdates
相当于rman的catalog

13.tar
cd /home
tar cvf . home1.tar将整个目录都打包,并使用相对路径
tar cvf home2.tar 将整个目录都打包,并使用绝对路径

tar xvf home1.tar --由于使用相对路径,可以解开到不同的目录
tar xvf home2.tar --由于使用绝对路径,只能解开到原来的目录

tar zxvf bind-src.tar.gz
解开文件bind-src.tar.gz
tar tvf /dev/rmt/0 --看磁带有什么文件
tar cvf /dev/rmt/0h /disk1/oradata/???.dbf --备份文件到磁带

14.cpio
cpio -idmv < count="1" bs="4k" skip="31" if="/dev/hd4" of="/dev/hd4" seek="1" svtx ="="">只有文件的所有着才能删除
^^
||
以该文件所有者用户身份来执行
该权限很容易被利用,造成像木马程序


4 2 1
6.SUID SGID SVTX R W X
| | | | | |
| | | | | |
^<<---------- | | | 4 0-7 0-7 0-7 7.chmod chmod 4777 file 8.umask 默认可读写权限 普通文件默认的权限=>666-umask :666-027=640
普通目录默认的权限=>777-umask

9.lsuser
显示用户帐户属性。
lsuser -a id home all

10.丢失root密码的解决办法
==>>使用启动盘
==>>F5
=>>选择3 Start Maintenance Mode for System Recovery
==>>激活了rootvg和shell
==>>修改root密码,passwd,sync
==>>重起系统



+=================+
|十四、调度 |
+=================+
CRONTAB
AT
BATCH

/var/adm/cron/queuedefs
/var/spool/cron/crontabs/$USER
/var/adm/cron/cron.deny --限制某些用户使用crontab
1.2>&1
sh ???.sh > test.log 2>&1---------
| |
| ^
^将错误输出到&1(就是前面的标准输入test.log)中


2.at命令 --系统只运行一次
3.batch --在系统CPU负载小的时候运行


+=================+
|十五、网络 |
+=================+
1./etc/hosts
2.dns
/etc/resolv.conf
3.mktcpip
只设置第一个网卡
4.远程信任验证
/etc/host.equiv(600) -对于所有用户
/$HOME/.rhosts(600) -两台机器必须要有相同的用户名


AIX高级教程
======================
+=================+
|一、ODM |
+=================+
Object Data Manager
|__________DEVICES
|__________TCP/IP CONFIGURATION
|__________ERROR LOG
|__________SMIT MENUS
|__________NIM 网络安装管理
|__________SOFTWARE
|
1.是二进制文件,不能用编辑器使用
相应的命令:
odmadd 添加对象到创建的对象类。
odmchange 更改指定对象类中的选定对象的内容。
odmcreate 产生 .c (源)和 .h(包含)文件,对于 ODM 应用程序开发和创建空的对象类是必要的。
odmdelete 从指定的对象类中删除选定的对象。
odmdrop 除去对象类。
odmget 从指定的对象类中检索对象到 odmadd 输入文件。
odmshow 在屏幕上显示对象类定义。


2.descriptor_file.cre
用odmcreate创建ODM的类的定义

3.ODM 存放的位置
/etc/objrepos
total 1008
-rw-rw-r-- 1 root system 4096 Mar 03 2003 SRCextmeth
-r--r--r-- 1 root system 0 Aug 02 2004 diag_log_lock
-r--r--r-- 1 root system 0 Aug 02 2004 diag_lock
lrwxrwxrwx 1 root system 22 Aug 02 2004 PdAt -> /usr/lib/objrepos/PdAt
lrwxrwxrwx 1 root system 30 Aug 02 2004 PDiagTask.vc -> /usr/lib/objrepos/PDiagTask.vc
lrwxrwxrwx 1 root system 27 Aug 02 2004 PDiagTask -> /usr/lib/objrepos/PDiagTask
lrwxrwxrwx 1 root system 29 Aug 02 2004 PDiagRes.vc -> /usr/lib/objrepos/PDiagRes.vc
...
-rw-rw-r-- 1 root system 12288 Jun 14 10:00 errnotify
-rw-rw-r-- 1 root system 12288 Jun 14 10:00 SWservAt.vc
-rw-rw-r-- 1 root system 8192 Jun 14 10:00 SWservAt
-rw-r--r-- 1 root system 20480 Jun 14 10:30 CuDv
-rw-r--r-- 1 root system 8192 Jun 14 10:30 CuAt.vc
-rw-r--r-- 1 root system 28672 Jun 14 10:30 CuAt


预定义设备信息 --->PdDv,PdAt,PdCn
自定义设备信息 --->CuDv,CuAt,CuDep,Cu...
软件 --->history,inventory,lpp,product
smit menus --->sm_???
error log --->SWservAt
System Resource Controller
Network install Manager

如:
odmshow PdDv

/etc/objrepos /usr/lib/objrepos /usr/share/lib/objrepos
|| || ||
^^ ^^ ^^
自定义设备信息等 预定义设备信息等 共享的软件产品
+lpp ,history,inventory,product
不包括pwd,filesystem,printsubsystem不属于odm管理

PdDv =====> CuDv =====> /dev/???
PdAt == 预定义属性
bash-2.05b$ odmshow PdDv
class PdDv {
char type[16]; /* offset: 0xc ( 12) */
char class[16]; /* offset: 0x1c ( 28) */
char subclass[16]; /* offset: 0x2c ( 44) */
char prefix[16]; /* offset: 0x3c ( 60) */
char devid[16]; /* offset: 0x4c ( 76) */
short base; /* offset: 0x5c ( 92) */
short has_vpd; /* offset: 0x5e ( 94) */
short detectable; /* offset: 0x60 ( 96) */
short chgstatus; /* offset: 0x62 ( 98) */
short bus_ext; /* offset: 0x64 ( 100) */
short fru; /* offset: 0x66 ( 102) */
short led; /* offset: 0x68 ( 104) */
short setno; /* offset: 0x6a ( 106) */
short msgno; /* offset: 0x6c ( 108) */
char catalog[16]; /* offset: 0x6e ( 110) */
char DvDr[16]; /* offset: 0x7e ( 126) */
nchar Define[256]; /* offset: 0x8e ( 142) */
nchar Configure[256]; /* offset: 0x18e ( 398) */
nchar Change[256]; /* offset: 0x28e ( 654) */
nchar Unconfigure[256]; /* offset: 0x38e ( 910) */
nchar Undefine[256]; /* offset: 0x48e ( 1166) */
nchar Start[256]; /* offset: 0x58e ( 1422) */
nchar Stop[256]; /* offset: 0x68e ( 1678) */
short inventory_only; /* offset: 0x78e ( 1934) */
char uniquetype[48]; /* offset: 0x790 ( 1936) */
};
/*
descriptors: 25
structure size: 0x7c0 (1984) bytes
data offset: 0x20002400
population: 133 objects (133 active, 0 deleted)
*/

+=================+
|二、初始化过程 |
+=================+
1.LED
指示灯数字代表的含义
553启动失败
http://publib16.boulder.ibm.com/doc_link/zh_CN/a_doc_lib/graphigs/phigsmsg/phigsmsg.pdf
2.firmware ==相当于设置bios
3.hd5 ==> boot lv(blv) ==> AIX KERNEL
RC.BOOT
REDUCED ODM --启动阶段在根目录生成前需要加载的设备信息
BOOT COMMANDS

4.bosboot -ad /dev/????设置启动设备
创建引导映像。
5.bootlist -m normal -o 显示当前引导列表
显示并改变可用于系统的引导设备列表。
6.进入启动列表方式
f1 ==> select boot

7.启动维护模式
F5 ==>F1 ==> 进入Welcome to Base Operating System
installation and Maintenance
1.start install now with default settings
2.change/show installation settings and install
3.start maintenance mode for system recovery

choice [1]:3
|
^
maintenance
1.access a root volume group
2.copy a system dump to removable media
3.access advanced maintenance functions
4.install from a system backup
choice [1]:1
1) volume group ????
2) volume group ????
choice :1
...
1) access this volume group and start a shell
2) ..........................................before mounting file system
99) previous menu

access this volume group and start a shell>>先会激活rootvg,然后使用shell,可以在这个阶段修改丢失root密码的密码.
...............before mounting file system>>先会激活rootvg,但属于该卷组的逻辑卷不会mount成文件系统

8.软件初始化过程
post -----+
|220v转换为+5v
^
load kernel and pass control
|
^
create ram file system (blv-hd5)
|
^ /----aix kernel
start init-process from blv/ 精简的odm库,放在内存中
| \
| \----rc.boot
^rc.boot 1 configure base devices
rc.boot 2 activate rootvg
rc.boot 3 configure remaining devices 其它跟rootvg不相关的设备进行配置


ramfs(blv)是以/../开头的
如:ls /../dev/hd5
/../???表示是从内存里拷的

9.mergedev
ram中的odm与系统的odm 进行merge

10./etc/inittab
使用mkitab,chitab,rmitab来编辑inittab

11.chvg -u rootvg
解rootvg锁(只会是lvm的管理才可能造成,且该命令必须在维护模式下运行才有效


+=================+
|三、磁盘管理 |
+=================+
7133提供RAID功能
1.mirror
一个lp可以指向最多3个pp(lp是指针)
可以对卷组或者单独对lv做mirror
number of copies of each logical [2]
2.条带
逻辑卷的多个lp分散在多个不同的磁盘上,这个磁盘数就是条带的宽度
1个lp对应1个pp
条带大小:4K~128K
条带要分散在不同的磁盘控制器上,1个磁盘控制器管理2个硬盘
不同磁盘要有相同的大小和速度
适合大量的顺序读
3.vgid 卷组描述区
32bytes

4.lqueryvg -p hdisk1 -AT
查看vgid信息
IMPORTVG
VGID =============>ODM
||
||
||
^^
EXPORTVG ==REMOVE VOLUMN GROUP FROM THE ODM

5.如果在非rootvg的odm出现问题,相当于数据库的非SYSTEM表空间出问题
那么该vg的odm从rootvg中的odm中remove(exportvg),然后再importvg导入odm中
1).varyoffvg datavg
2).exportvg datavf
3).importvg -y datavg hdisk2

6.lsvg -o 可以查到非激活的vg

7.如果在rootvg的odm出现问题,相当于数据库的SYSTEM表空间出问题
解决办法
例如:
#!/sbin/sh
PV=hdisk0
VG=rootvg


cp /etc/objrepos/CuAt /etc/objrepos/CuAt.$$
cp /etc/objrepos/CuDep /etc/objrepos/CuDep.$$
cp /etc/objrepos/CuDv /etc/objrepos/CuDv.$$
cp /etc/objrepos/CuDvDr /etc/objrepos/CuDvDr.$$
lqueryvg -Lp $PV |awk '{print $2}'|while read LVname;
do
odmdelete -q "name=$LVname" -o CuAt
odmdelete -q "name=$LVname" -o CuDv
odmdelete -q "value3=$LVname" -o CuDvDr
done
odmdelete -q "name=$VG" -o CuAt
odmdelete -q "parent=$VG" -o CuDv
odmdelete -q "name=$VG" -o CuDv
odmdelete -q "name=$VG" -o CuDep
odmdelete -q "dependency=$VG" -o CuDep
odmdelete -q "value1=10" -o CuDep
odmdelete -q "value3=$VG" -o CuDvDr
importvg -y $VG $PV
varyonvg $VG

8.制作一个卷组的mirror
mklvcopy
1).制作rootvg mirror
运行mklvcopy ==mklvcopy hd1 2 hdisk1或者mirrorvg -s rootvg
....
syncvg -v rootvg ==保持数据一致性
bosboot选择其中一个作为引导盘 == bosboot -ad /dev/???
bootlist -m normal hdisk0 hdisk1

9.替换一个在运行的磁盘的处理
要移走在一个卷组中的一个镜像盘
1).rmlvcopy
移除该卷组中所有lv的镜像
rmlvcopy lv??? 1 hdisk??
...
2).将该盘从卷组中移走,相当于在表空间中使数据文件offline drop;
reducevg vg_name hdisk?
3).从系统的odm库中去除该硬盘的信息,相当于数据文件要从控制文件中消失;
rmdev -l hdisk? -d
4).插入新的磁盘(热插拔)
5).增加一个新的磁盘到该卷组
extendvg vg_name hdisk??new
6).mklvcopy lv??? 2 hdisk??new
7).syncvg -v vg_name

10.如果磁盘没有镜像,但需要替换其中一块硬盘的处理
1).插入新的磁盘
2).extendvg vg_name hdisk??new(相当于在表空间中加入新的文件)
3).migratepv hdisk??old hdisk??new(相当于将该表空间的老的数据文件的数据转到新的数据文件中)
4).reducevg vg_name hdisk??old(将原来的磁盘从odm中去除)
5).rmdel -l hdisk??old -d(相当于rm 数据文件

11.如果磁盘没有镜像,而且其中一块硬盘无法使用,想恢复该硬盘
1).lspv -l hdisk??fail 查出在损坏盘上所有的lv
2).umount /dev/lv?? umount所有盘上的文件系统
...
3).rmlv lv?? 删除该lv
...
4).reducevg vg_name hdisk??fail 删除该磁盘在odm上的信息
5).rmdel -l hdisk??fail 删除该磁盘
6).extendvg vg_name hdisk??new 增加一个新的磁盘到卷组
7).mklv -y lv???
...
8).restore -rvqf /dev/??? 从备份中恢复损坏盘的数据


12.如果磁盘造成rootvg损坏
1).替换损坏的磁盘
2).启动服务器到维护模式
3).从mksysb中恢复
4).importvg

13.如果磁盘造成非rootvg损坏
1).exportvg vg_name
2).检查/etc/filesystems
3).rmdev -l hdisk??fail -d
4).增加新的硬盘
5).restvg -f /??? hdisk???new 恢复原来磁盘上的数据
6).mkvg,mklv
7.restore -rqvf /dev/???

14.mksysb控制文件
bosinst.data,
mkszfile ==>生成/image.data
可以在备份后,修改该参数,使得在恢复时按新的参数恢复到设备上.

15.alt_disk_install
安装具有 mksysb 安装映像的备用磁盘或将当前运行的系统克隆到备用磁盘。
要在 hdisk3 上安装 4.3 mksysb 映像,然后在重新引导前,运行定制的脚本(/home/myscript)来将一些用户文件复制到备用
rootvg 文件系统:
alt_disk_install -d /mksysb_images/4.3_mksysb -s /home/myscript hdisk3

16.只要有足够的空闲的裸盘,可以restvg 直接恢复
17.mkvgdata
创建包含有关 savevg 和 restvg 命令所使用的卷组信息的文件。

mkvgdata 命令创建包含有关 savevg 命令和 restvg 命令所使用的卷组信息的文件。这些信息包含逻辑卷的列表、文件系统及其大小、
和卷组名。根据卷组的类型,创建了以下文件之一:
/image.data 为有关 root 用户卷组(rootvg)信息而创建。savevg 命令使用此文件来创建备份映像,该映像可以由 bosinstall
例程用来把卷组重新安装到当前系统或新的系统。如果此文件已经存在,mkvgdata 命令将其覆盖。
/image.data 文件位于 / 目录中。
vgname.data 为有关用户卷组的信息而创建。vgname 变量反映了卷组名。savevg 命令使用此文件来创建备份映像,该映像可以由
restvg 命令用来重新安装用户卷组。如果此文件已经存在,mkvgdata 命令将其覆盖。vgname.data 文件位于
/tmp/vgdata/vgname 目录中,其中 vgname 是卷组名。
这些文件的其中任何一个的信息在发出 savevg 命令之前,都可以由用户编辑。


18.splitvg
分割全镜像卷组的单一镜像副本
splitvg 命令将全镜像卷组的单一镜像副本分割成快照卷组。原始卷组 VGname 将停止使用现在是快照卷组 SnapVGname 组成部分的磁盘。两个卷组都将跟踪卷组中的写操作,以便快照卷组与原始卷重新组合并时在合并的镜像副本中数据保持一致性。

注意:我上面用表空间只是做比方,便于理解,其实表空间是不能用此方法解决的,因为他本身是一个整体
+=================+
|四、错误日志 |
+=================+
/usr/lib/errdemon生成 /var/adm/ras/errlog
可以用errpt查看
1.errpt
errpt 命令会从错误日志中的记录生成一个错误报表。它包含了所选符合特定标准的错误的标志。利用缺省的条件,
您可以以错误发生及被记录相反的顺序显示错误日志的记录。利用 - c (并行)标志,您可以在错误发生时显示这些错误。
如果 -i 标志没有同 errpt 命令一起使用的话,则 errpt 处理的错误日志文件就是在错误日志配置数据库中指定的那个。
(要想查看在错误日志数据库中的信息,请使用

-a 以详细的格式显示错误日志文件中的错误信息。如果同 -t 标志结合起来使用的话,则模板文件中所有的信息都会显示出来。
-A 显示由 -a 标志产生的详细报表的缩减版本。-A 标志和 -a-g 或者 -t 标志在一起是非法的。报表中的项有标签、日期时间、类型、资源名称、描述和详细数据。该标志的示例的输出的格式如下:

LABEL: STOK_RCVRY_EXIT
Date/Time: Tue Dec 14 15:25:33
Type: TEMP
Resource Name: tok0
Description
Description
PROBLEM RESOLVED
Detail Data
FILE NAME
line: 273 file: stok_wdt.c
SENSE DATA
0000 0000 0000 0000 0000 0000
DEVICE ADDRESS
0004 AC62 25F1

bash-2.05a$ errpt
IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION
3A30359F 0606174805 T S init SOFTWARE PROGRAM ERROR
3A30359F 0606174505 T S init SOFTWARE PROGRAM ERROR
3A30359F 0606172805 T S init SOFTWARE PROGRAM ERROR
3A30359F 0606172505 T S init SOFTWARE PROGRAM ERROR
3A30359F 0606172205 T S init SOFTWARE PROGRAM ERROR
3A30359F 0606171205 T S init SOFTWARE PROGRAM ERROR
3A30359F 0606170705 T S init SOFTWARE PROGRAM ERROR
3A30359F 0606170305 T S init SOFTWARE PROGRAM ERROR
3A30359F 0606165705 T S init SOFTWARE PROGRAM ERROR
3A30359F 0606165305 T S init SOFTWARE PROGRAM ERROR
3A30359F 0606164405 T S init SOFTWARE PROGRAM ERROR
3A30359F 0606162105 T S init SOFTWARE PROGRAM ERROR
0619C49F 0601093205 U U topsvcs Contact with a neighboring adapter lost



--查看错误细节
bash-2.05a$ errpt -a 0619C49F
---------------------------------------------------------------------------
LABEL: PGSP_KILL
IDENTIFIER: C5C09FFA

Date/Time: Sat May 21 16:57:04 2005
Sequence Number: 16334
Machine Id: 0031D18B4C00
Node Id: IBM670B
Class: S ------------------------------------------------>
Type: PERM -------------------> |--->H:硬件
Resource Name: SYSVMM |--->P:永久,性能和pending |--->S:软件
|--->T:临时 |--->O:操作错误
Description |--->I:信息 |--->U:无法确定
SOFTWARE PROGRAM ABNORMALLY TERMINATED |--->U:未知

Probable Causes
SYSTEM RUNNING OUT OF PAGING SPACE

Failure Causes
INSUFFICIENT PAGING SPACE DEFINED FOR THE SYSTEM
PROGRAM USING EXCESSIVE AMOUNT OF PAGING SPACE

Recommended Actions
DEFINE ADDITIONAL PAGING SPACE
REDUCE PAGING SPACE REQUIREMENTS OF PROGRAM(S)

Detail Data
PROGRAM
ksh
USER'S PROCESS ID:
0
PROGRAM'S PAGING SPACE USE IN 1KB BLOCKS
0
2.errlogger
下日志信息到/var/adm/ras/errlog
errlogger system hard disk '(hdisk0)' replaced.

+=================+
|五、诊断 |
+=================+
1.diag
执行硬件问题确定。
diag 命令是运行广泛选择的任务和服务帮助的起点。大多数任务和服务帮助是特定于平台的。以下任务和服务帮助是可用的:

运行诊断
显示或者更改诊断运行时选项
显示服务提示
显示先前的诊断结果
显示硬件错误报告
显示软件产品数据
显示配置和资源列表
显示硬件的重要产品数据
显示资源属性
更改硬件的重要产品数据
格式化介质
认证介质
显示测试模式
局域网分析器
在资源列表中添加资源
从资源列表删除资源
SCSI 总线分析器
下载微码
显示或更改引导列表
定期诊断
备份与恢复介质
磁盘维护
配置拨号和 LPF 键
添加或删除抽屉配置
创建定制配置软盘
更新基于磁盘的诊断
配置 ISA 适配器
操作系统 Shell 提示(只适用于联机服务方式)
显示或更改多处理器配置
启用和禁用个别处理器
显示或更改 BUMP 配置
用新的二进制映像更新闪存 EPROM
显示或更改诊断方式
显示或更改远程电话号码和调制解调器配置
显示或更改电子方式切换
处理补充介质(只适用于单机模式)
类属微码下载
运行错误日志分析
用于以太网的服务帮助
在 AIX 5.1 和较早版本(RSPC)中更新系统闪存
在 AIX 5.1 和较早版本(RSPC)中配置铃声指示电源启动
在 AIX 5.1 和较早版本(RSPC)中配置服务处理器
在 AIX 5.1 和较早版本(RSPC)中保存或恢复服务处理器配置
在 AIX 5.1 和较早版本(RSPC)中显示机器检查错误日志
7135 RAIDiant 阵列服务帮助
SCSI 设备识别和除去
SCSD 磁带机服务帮助
Escon 位错误率服务帮助
SSA 服务帮助
PCI RAID 物理磁盘标识
配置铃声提示电源启动策略(CHRP)
配置监视策略(CHRP)
配置重新引导策略(CHRP)
配置远程维护策略(CHRP)
保存或恢复硬件管理策略(CHRP)
显示固件设备节点信息(CHRP)
提供扇区可用性
更新系统或服务处理器闪存(CHRP)
显示系统环境传感器(CHRP)
显示检查停止分析结果
分析适配器内部日志
闪烁 SK-NET FDDI 固件
显示微码级别
2.diagrpt -r

+=================+
|六、DUMP |
+=================+
用于诊断系统异常
1.CTRL+ATL+NUMBERPAD
RESET按钮
smit菜单来dump数据
2.dump文件默认地点
如果系统crash,则自动会写到/hd6(原pagespace所在地)
在下次重起的时候写到下面的默认位置
/var/adm/ras/vmcore.0
确保有足够的空间
3.人工DUMP会关闭机器


+=================+
|七、性能优化 |
+=================+
1.ps aux
bash-2.05a$ ps aux
USER PID %CPU %MEM SZ RSS TTY STAT STIME TIME COMMAND
root 40970 22.1 0.0 40 17156 - A Jun 01 16935:33 wait ==>这个进程,我们可以查看他的CPU占用越大,那么负载越小 22.1%*4 =88.4%
root 24582 22.1 0.0 40 17160 - A Jun 01 16933:49 wait
root 16388 22.1 0.0 40 17156 - A Jun 01 16913:36 wait
root 32776 22.1 0.0 40 17156 - A Jun 01 16911:47 wait
bea 1704002 2.7 4.0 346936 341240 - A Jun 13 160:08 /usr/java14
2.ps -elf
查看优先级
见上
3.ps v
查看内存泄漏
也可以用svmon
4.svmon
强大的内存查看工具
svmon -P 20876

-------------------------------------------------------------------------------
Pid Command [1] Inuse [2] Pin [3] Pgsp[4] Virtual 64-bit Mthrd
20876 ora_pmon_V8 29598 1451 182 16560 N N

Vsid Esid Type Description Inuse Pin Pgsp Virtual Addr Range
[5] [6] [7] [8]
1781 3 work shmat/mmap 11824 [9] 0 0 11824 0..24700
1761 1 pers code,large file /dev 9681 [10] 0 - - 0..9680
0 0 work kernel seg 3982 [11] 1450 182 3390 0..21804 :
65474..65535
18018 d work shared library text 2852 [12] 0 0 158 0..65535
4764 2 work process private 1127 [15] 1 0 1127 [13] 0..1182 :
65307..65535
f74f f work shared library data 81 [16] 0 0 61 [14] 0..1291
1e59e - pers large file /dev/lv00 33 0 - - 0..32
e58e - pers large file /dev/lv00 16 0 - - 0..82
b74b - pers large file /dev/lv00 1 0 - - 0..0
3703 - pers large file /dev/lv00 1 0 - - 0..0


Across the top you will see the summary (overall totals for the process):

[1] "Command" indicates the command name,this case it is the ora_pmon_v817 process
[2] "Inuse" column is the total number of pages in real memory from segments that
are used by the process), in this example,a total of 29598 pages for the
ora_pmon_V8 process (each page is normally 4 KB on AIX, to be confirmed by IBM).
[3] "Pin" column is the total number of pages pinned from segments that are
used by the process. Those pages are part of the "Inuse", but are pinned in
memory so that they can't be swapped out.
[4] "Pgspace" column (total number of paging-space pages that are used by the
process) shows 6427 pages.

The detailed section is a breakdown of each segment for the process that is
shown in the summary section:

[5] "Vsid" column is the virtual segment ID
[6] "Esid" column is the effective segment ID.
[7] "Type" is the type of segment (pers = persistent, work = versatile)
[8] "Description" gives more details for the segment id. It normally includes
volume name and the i-node of the file for persistent segments.

svmon -G --全部进程的报告
svmon -Pt 3 --显示top 3内存使用的进程信息

5.sar
bash-2.05a$ sar -u

AIX IBM670A 1 5 0031D80B4C00 06/14/05

00:00:00 %usr %sys %wio %idle
09:20:00 29 6 4 61
09:40:00 36 6 3 54
10:00:00 22 6 4 69
10:20:00 29 6 3 62
10:40:00 34 5 2 58
11:00:00 24 6 3 67
11:20:00 35 7 3 54
11:40:00 25 6 2 67
12:00:00 10 3 1 86
12:20:00 6 2 1 91
12:40:00 2 1 0 97
13:00:01 3 1 0 96
13:20:01 20 3 1 76
13:40:01 20 4 1 74
14:00:00 20 5 3 73
14:20:00 23 6 4 67
14:40:00 18 4 2 76
15:00:00 19 5 2 73
| | |
+-------+ ^
高 + 低 =CPU问题
低 + 高 =IO 问题
>80% cpu有问题

bash-2.05a$ sar -d

AIX IBM670A 1 5 0031D80B4C00 06/15/05

00:00:00 device %busy avque r+w/s blks/s avwait avserv
09:00:00 hdisk0 2 0.0 4 21 0.0 0.0
hdisk1 2 0.0 4 19 0.0 0.0
hdisk8 0 0.0 1 9 0.0 0.0
hdisk9 0 0.0 0 5 0.0 0.0
dac1 0 0.0 222 6566 0.0 0.0
dac0 0 0.0 0 1 0.0 0.0
hdisk2 6 0.0 222 6566 0.0 0.0
hdisk3 0 0.0 0 1 0.0 0.0
hdisk4 0 0.0 0 0 0.0 0.0
cd0 0 0.0 0 0 0.0 0.0


09:20:00 hdisk0 2 0.0 4 22 0.0 0.0
hdisk1 2 0.0 4 23 0.0 0.0
hdisk8 0 0.0 1 23 0.0 0.0
hdisk9 0 0.0 0 23 0.0 0.0
dac1 0 0.0 405 13652 0.0 0.0
dac0 0 0.0 0 1 0.0 0.0
hdisk2 13 0.0 405 13652 0.0 0.0
hdisk3 0 0.0 0 1 0.0 0.0
hdisk4 0 0.0 0 0 0.0 0.0
cd0 0 0.0 0 0 0.0 0.0
| | |
| | |--->每秒传送的字节数(512字节)
| |--->每秒读写的次数
|
---->该参数是IO性能的重要指示,表示
从适配器到设备的未完成请求的平均数
通常小于2

bash-2.05a$ sar -b (buffer)

AIX IBM670A 1 5 0031D80B4C00 06/15/05

00:00:00 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
01:00:00 0 0 0 0 0 0 1 1
02:00:00 0 0 0 0 0 0 3 1
03:00:00 0 0 0 0 0 0 27 1
04:00:00 0 0 0 0 0 0 1 1
05:00:00 0 0 0 0 0 0 1 1
06:00:00 0 0 0 0 0 0 1 1
07:00:00 0 0 0 0 0 0 6 1
08:00:00 0 0 0 0 0 0 27 1
08:20:00 0 0 0 0 0 0 361 11
08:40:00 0 0 0 0 0 0 271 8
09:00:00 0 0 0 0 0 0 422 5
09:20:00 0 0 0 0 0 0 689 7
09:40:00 0 0 0 0 0 0 554 4
10:00:00 0 0 0 0 0 0 832 5
10:20:00 0 0 0 0 0 0 461 5

Average 0 0 0 0 0 0 122 2
| |
| |--->裸设备写次数
|--->裸设备读次数

6.vmstat
# vmstat 2
kthr memory page faults cpu
----- ----------- ------------------------ ------------ -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
1 0 22478 1677 0 0 0 0 0 0 1881380 157 57 32 0 10
1 0 22506 1609 0 0 0 0 0 0 2141476 186 48 37 0 16
0 0 22498 1582 0 0 0 0 0 0 2481470 226 55 36 0 9
2 0 22534 1465 0 0 0 0 0 0 238 903 239 77 23 0 0 |==这里因为不使用IO,可以占有前面因为IO等待而未用过的所有CPU周期
2 0 22534 1445 0 0 0 0 0 0 2091142 205 72 28 0 0 |
2 0 22534 1426 0 0 0 0 0 0 1891220 212 74 26 0 0 |此段可以看出IO是0,而CPU是100%,是由于一个没有IO的死循环
3 0 22534 1410 0 0 0 0 0 0 2551704 268 70 30 0 0 |
2 1 22557 1365 0 0 0 0 0 0 383 977 216 72 28 0 0 |==
2 0 22541 1356 0 0 0 0 0 0 2371418 209 63 33 0 4
1 0 22524 1350 0 0 0 0 0 0 2411348 179 52 32 0 16
1 0 22546 1293 0 0 0 0 0 0 2171473 180 51 35 0 14
------------
| |
^ ^
该区域是每秒钟调入调出的页面数量,如果这些值经常出现非零值,说明内存有瓶径
,偶尔出现非零不用在意

avm ==>活动虚拟内存的页面数
fre ==>空闲内存页面的平均数量
fr ==>每秒释放的页面数
sr ==>每秒检查的页面数

查看磁盘IO细节
bash-2.05a$ vmstat hdisk2 5 5
kthr memory page faults cpu disk xfer
----- ----------- ------------------------ ------------ ----------- -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa 1 2 3 4
2 1 1624073 3926 0 0 1 10 47 0 1365 7919 2593 10 2 87 1 182
4 1 1624630 3368 0 0 0 0 0 0 2510 23814 3369 63 10 24 3 265
3 0 1624661 3334 0 0 0 0 0 0 1467 23063 3594 66 7 26 1 79
2 0 1625229 3804 0 0 89 209 1194 0 1468 17126 2401 55 6 39 0 4
2 0 1626147 2864 0 0 0 0 0 0 1404 18833 2543 58 7 35 0 6
| | | |
| ^--->每秒VMM等待队列中的内核线程平均数 |--------|
^---->可运行的内核线程平均数,包括正在运行的线程和正在等待CPU的线程 |
如果这个数字大于CPU数目,那么至少有一个线程要等待CPU |
^1,2,3,4表示要查找的4个磁盘的序列
该值是表示在指定时间间隔内每秒向特定的物理卷传送的次数





vmstat命令报告了关于内核线程的统计信息,包括处于运行和等待队列中的,内存中的,页面调度中的,
磁盘中的,中断,系统调用,上下文切换和CPU活动的内核线程.
在查看CPU方面比iostat好,而且对于很多磁盘的系统,比iostat更少消耗资源.

上面看到始终会有新的进程在等待队列中等待接管CPU
最佳利用是让CPU在100%时间中工作
但这只适合单用户模式,因为不需要共享CPU
单用户系统 多用户系统
us + sy ~~100% <80% tm_act ="="">激活以来平均使用率
瓶径:% tm_act >70% --指示物理磁盘活动所占用的百分比
iowait >25%
tps --物理磁盘传送次数
Kbps --每秒传送的字节
Kb_read --在统计间隔总共读取的字节

tm_act Kbps 状态
---------- ---------- --------
高 高 IO频繁
高 低 可能磁盘配置不合理,或者有一个碎裂的LV,文件系统或文件
低 高 性能很好
低 低 IO不频繁
通常的原则
~~~~~~~~~~
你的系统拥有的驱动器越多,你的磁盘IO越好,当然需要更多的磁盘适配器.但是这样有磁盘损坏的几率越高


查看cpu
bash-2.05a$ iostat -t 5 5

tty: tin tout avg-cpu: % user % sys % idle % iowait
0.1 103.0 9.6 2.3 86.9 1.3
0.0 293.2 10.5 3.8 82.4 3.4
0.0 176.3 25.2 6.8 63.1 5.0
0.0 273.4 17.1 7.3 70.2 5.3
0.0 191.8 24.9 10.8 57.0 7.2
8.topas是上面的综合体
topas -h可以查看具体细节命令
如topas -P查看具体进程的情况
...

9.tprof 命令
报告 CPU 使用情况

tprof 命令报告单个程序和整个系统的 CPU 使用情况。对任何使用可能是 CPU 受限的 JAVA、C、C++ 或 FORTRAN 程序的人,
和想了解程序的哪些部分大量占用 CPU 的人,该命令是一个有用的工具。

$ tprof -skeuj -x sleep 10
2002 年 3月 20 日 星期一 00:39:26 系统:AIX 5.2 节点:dreaing 机器:000671894C00
10秒后启动命令
停止跟踪收集。
生成 sleep.prof

参见性能管理指南

10.filemon
可以定位热文件,并分散文件到不同的磁盘

11.pdt --性能诊断工具
/usr/sbin/perf/diag_tool/pdt_config
可以查看性能趋势


+=================+
|八、安全 |
+=================+
1.审计
/etc/security/audit/abjects
events
config
审计较消耗系统性能,不常用

cat /etc/security/audit/abjects
/home/fanglf.sh:
x = "MY_X_EVENT"
| |
^ ^
执行 事件名,在events中

cat /etc/security/audit/events
...
MY_X_EVENT = printf "%s"

--系统事件
cat /etc/security/audit/config
start:
...
classes:
init = USER_Login, USER_Logout
bin: --bin模式
...
bin1 = /audit/bin1 --类似ORACLE在线日志,做循环写入
bin2 = /audit/bin2


stream 模式
cat /etc/security/audit/config
...
stream:
cmds = /dec/security/audit/streamcmds
...
2.audit
audit start --启动审计
audit stop
audit query
audit off
audit on

3.在ROOT下要小心设置PATH
注意.:的位置
1).PATH=/usr/bin:/etc:/usr/sbin:/sbin:.
2).PATH=.:/usr/bin:/etc:/usr/sbin:/sbin --有漏洞
由于执行文件搜索顺序以PATH设置的先后顺序来执行的
那么对于2)就可能会先在当前目录下去搜索


我们来看看木马程序怎么来利用该漏洞的
$cd /home/hacker
$vi ls
#!/usr/bin/ksh
cp /usr/bin/ksh /tmp/.hacker --拷贝ksh成hacker的隐含文件
chown root /tmp.hacker --该ksh是root身份
chmod u+s /tmp/.hacker --s表示不管在哪个用户都将以root身份执行该文件

rm -f $0 --删除文件ls

/usr/bin/ls $*


~~~~~~~~~~~~~~~~~~
$0 当前shell的名字
$* 传递给shell script的参数
~~~~~~~~~~~~~~~~~~

如果这时某个管理员root登陆到某个用户的主目录时,第一部可能就会执行ls命令
但是由于PATH先去搜索当前目录有没有ls文件,这时他先找到前面写的木马脚本ls
这时会在/tmp下生成了hacker的隐含文件,并改成root,并以root身份执行

那么以后其他用户就可以运行hacker文件以root身份登陆了,可以做任何root权限的工作

$cd /tmp
$.hacker
#passwd root
...
4.rsh
受限的shell
不能改变当前目录
改变环境变量...
5.ACL
可以控制访问控制表,控制某个用户或组的特定权限
permit 授权用户或组对文件的指定访问 --类似append
deny 限制用户或组使用对文件的指定访问 --类似replace
specify 精确地定义用户或组的文件访问

使用acledit 文件名
格式
acledit test.txt
attributes: SUID
base permissions:
owner(frank): rw-
group(system): r-x
others: ---
extended permissions:
enabled
permit rw- u:dhs 用户dhs对文件test.txt增加rw权限
deny r-- u:chas, g:system chas 是 system 组的成员时,才拒绝对他的读(r)访问。
specify r-- u:john, g:gateway, g:mail 只要用户 john 同时是 gateway 组和 mail 组的成员时才对文件test.txt只有读的权限
如果用户 john 不是两个组的用户,则此扩展许可权不适用。
permit rw- g:account, g:finance
--不要在同一行中指定多个用户

+=================+
|九、其他知识点 |
+=================+
HA--
|
-->HACMP High Availability Software
|
-->Duplicate Servers
|
-->SSA Disk Systems
|
-->aix os
两种模式|===>空闲备用
|
|===>互为备用

SP (Scalable POWERparallel Systems)主机系统


N/A==>NULL/AVAILABLE
lsdev -C|grep aio --查看AIO
mkdev -l aio --建立AIO
rmdev -l aio0 --关闭aio

catman --创建一个man信息的cat文件
man -k string --在所有man中查看一个字符串

.dtprofile --在图形环境下会执行.dtprofile

profile启动序列
/etc/environment
|
/etc/profile
|
/$HOME/.profile
|
/$HOME/.dtprofile --如果是图形方式

slibclean --清理内存(未在内核使用的内存)
/var 相当于oracle的bdump

IBM存储
鲨鱼存储 shark
7133

oracle下载包地址
www.ibm.com/server/aix/download


















Thursday, July 05, 2007

better man

#
# http://www.17shang.cn/mtv/huangyong/RobbieWilliams-BetterMan.mp3
# http://grad.xjtu.edu.cn/admin_of_grad/edit/UploadFile/20041026103157562.mp3

Send someone to love me
I need to rest in arms
Keep me safe from harm
In pouring rain

Give me endless summer
Lord I fear the cold
Feel I'm getting old
Before my time

As my soul heals the shame
I will grow through this pain
Lord I'm doing all I can
To be a better man

Go easy on my conscience
'Cause it's not my fault
I know I've been taught
To take the blame

Rest assured my angels
Will catch my tears
Walk me out of here
I'm in pain

As my soul heals the shame
I will grow through this pain
Lord I'm doing all I can
To be a better man

Once you've found that lover
You're homeward bound
Love is all around
Love is all around

I know some have fallen on stony ground

But Love is all around

Send someone to love me
I need to rest in arms
Keep me safe from harm
In pouring rain

Give me endless summer
Lord I fear the cold
Feel I'm getting old
Before my time

As my soul heals the shame
I will grow through this pain
Lord I'm doin' all I can
To be a better man

Monday, July 02, 2007

表达式 说明 使用例
^ 匹配一行的开头。 例:1,^hello。匹配行头以hello开头的字符串。
$ 匹配一行的结尾 例:1,hello$。匹配行尾以hello结尾的字符串。
. 匹配改行以外的任何字符 例:1,hello.world。匹配诸如hello world,hello-world等字符串。
[] 匹配被括起来的任何一个字符 例:1,[abc]。匹配a或者b或者c。
2,r[aeu]d。匹配rad或red或rud。
[A-Z] 匹配从A-Z的任一个字符。 例:1,a[A-Z]c。匹配aAc,aBc,…,aZc。
[a-z] 匹配从a-z的任一个字符。 例:1,a[a-z]c。匹配aac,abc,…,azc。
[0-9] 匹配从0-9的任一个数字。 例:1,a[0-9]c。匹配a0c,a1c,…,a9c。
[^] 匹配任何没有被括起来的一个字符。与[]相左。 例:1,[^abc]。则匹配除a或b或c以外的其他字符。
* 匹配*前面的一个字符任意次数(0到多次)。 例:1,ab*。则匹配a或ab或abb,abbb等
+ 匹配+前面一个字符1到多次。 例:1,ab+。则匹配ab或abb或abbb,abbbb等
? 匹配?前面一个字符0到1次。 例:1,ab?。则匹配a或ab。
{n} 匹配之前一个字符n次。n为整数。 例:1,ab{2}。则匹配abb。
{n,} 匹配之前一个字符n次或大于n次。n为整数。 例:1,ab{2,}。则匹配abb,abbb等。
{n,m} 匹配之前一个字符大于等于n次,小于等于m次。n,m为整数。 例:1,ab{2,5}。则匹配abb,abbb,abbbb,abbbbb。
| 匹配条件的或(OR)运算。匹配之前的运算式或匹配之后的运算式。 例:1,hello|world。则匹配hello或者world。
() 分组。被()括起来的运算式被看作为一组(group)。可以用1,9来加以引用。