Problem determination
1、 日志工具
用于跟踪过程及可能在此期间发生问题的所在,可以使用alog命令监视这些问题,rc. 脚本使用alog命令重定向信息到文件/var/adm/ras/log如果系统出现问题,可以单用户模式启动系统,使用alog –o –t 命令查看该文件,确定是哪里出现了问题。
-f:指定一Logfile名字,如文件不存在建立一个,如果alog不能写到该文件,则写到/dev/null
-L:列出当前alog配置定义的日志类型,如和-t一起使用,列出该类型的详细信息
-o:写Logfile文件内容到标准输出
-q:拷贝标准输入到Logfile文件,但不写到标准输出
-t Type:指定类型,alog从alog配置获得log名字和大小
例子: alog –f Logfile –o
alog –f Logfile |-q –s size
alog –t Type –v (verbosity value)
alog –C –t Type –f Logfile –s Size –v Verbosity
alog –L –t Type
alog –L(,bosinst,nim,dumpsymp) + alog –o –t Type (smitty alog_show)
循环日志,当多个CPU同时写同一个日志文件时,文件的内容是不可预知的。
2、 错误日志工具
错误日志记录硬件及软件故障,为错误诊断及更正提供服务,错误日志子系统有三个组件构成:
Error log programming:开发人员使用建立错误模板和信息
Error processing:错误出现是处理
Error log file processing:管理员用于诊断问题
详细视图见下页!
①配置错误日志文件(/var/adm/ras/errlog)
/usr/bin/errdemon –l列出错误日志配置中的错误文件信息
/usr/bin/errdemon –i /var/adm/ras/errlog.test 改变错误日志文件的名字
/usr/bin/errdemon –s Size(byte)改变错误日志文件的大小(不能小于4K),如果指定的大小小于当前的文
件,则当前文件更改为.old,并创建新的指定大小的文件,它也是循环日志。
/usr/bin/errdemon –B Size(16384)改变错误日志设备的内部缓存
②启动、停止错误日志守护进程
/usr/bin/errdemon(如果errpt没有输出,该守护进程可能终止)
/usr/bin/errstop
③清除错误日志(smitty errclear)
通常在日处理的cron命令执行,也可手动执行
errclear 0清除所有记录
errclear –d S 0 清除所有的软件错误记录
④产生错误报告(errpt)
errpt –a –c –d ErrClass –e EndDate –g –i File –j|-k ErrID –J|-K ErrLabel –l SequenceNum –m Machine
-n Node –s StartDate –F Flag –N ResourceName –R ResourceType –S ResourceClass –T ErrType
-y File –z File
-a:显示详细信息
-c:同步显示,错误出现时,显示错误信息
-d ErrClass:显示指定类的错误
-T ErrType:显示指定类型的错误
-e EndDate:显示截止到某时的错误信息
-s StartDate:显示自某时开始的错误信息
-J ErrLabel:显示指定Label的错误
-j ErrID:显示指定ID的错误
-K ErrLabel:显示除指定Label的错误
-k ErrID:显示除指定ID的错误
-N ResourceName:显示指定资源名产生的错误
ErrType:
PEND:设备、组件不可用,紧急。
PERF:设备、组件的性能低于可接受的级别
PERM:永久性错误,不能恢复
TEMP:临时错误,已经恢复
UNKN:未知错误
INFO:消息
ErrClass:
H:硬件错误;S:软件错误;O:消息;U:不能确定
ls /var/adm/ras/errlog|backup -ivp(f /dev/fd0)备份错误日志到软盘
ls /var/adm/ras/errlog|backup –ivpf /dev/rmt0备份错误日志到磁带机
⑤日志维护
员可以使用errlogger在错误日志中记录消息
errlogger “This is a test about errlogger command”
3、系统dump工具(smit dump)
当系统意外终止,系统dump拷贝选择的内核结构到dump设备。系统dump设备能被动态配置为磁带
机或逻辑卷来存储系统dump。主要的dump设备是专门的dump设备,次要的dump设备是共享
的。在安装OS时,dump设备自动配置。缺省的,5L版本配置/dev/hd6为主要的dump设备,而
/dev/sysdumpnull为次要的dump设备。(如果系统从3升级而来,3缺省的dump设备/dev/hd7
依然为5L的默认dump设备。系统和用户都可以初始化dump,当dump完成,系统终止或重启,依据
sys0自动重启属性的设置(smitty?;System Environments?;Change/Show characteristics of OS)
①管理dump设备
sysdumpdev –l列出当前的dump设备
sysdumpdev –P –p /dev/newdump改变缺省的主要dump设备
sysdumpdev –e估计当前dump设备的大小
sysdumpdev -L显示先前dump的统计信息
②系统开始dump
系统内核panic开始的系统dump写到主dump设备。闪动的“888”指示消息正在解码,按reset键查
看,RS6000系统使用增强的按钮实现该功能。
888-102表示系统异常终止,mmm表示终止原因,ddd表示dump状态和dump码
③用户开始dump
用户有三种方法实现系统dump。
检查估计的dump大小
sysdumpdev –e
检查主dump设备大小
sysdumpdev -l
lsps -a
开始dump
sysdumpstart –p(primary)-s(secondary)从命令行开始
Ctrl+Alt+NumPad1(primary);Ctrl+Alt+NumPad2(secondary);reset(primary)特殊键开始
注意:只有keymode开关位于维护模式时按键开始dump才有效,或是执行命令:
sysdumpdev –K
④验证系统dump
crash命令是用于检验系统dump文件的交互工具
crash SystemImageFile KernelFile在此两个文件上执行crash命令
SystemImageFile是文件名或dump设备名
KernelFile是缺省内核/usr/lib//Unix
Sysdumpdev –L列出系统dump文件名
Device name: /dev/hd6
Major device number: 10
Minor device number: 2
Size: 24202752 bytes
Date/Time: Tue Nov 10 16:50:45 CST 1998
Dump status: 0
dump completed successfully
Dump copy filename: /var/adm/ras/vmcore.1
crash /var/adm/ras/vmcore.1验证dump的有效性
Using /unix as the default namelist file.
>
>stat
sysname:
nodename: 4xdev
release: 3
version: 4
machine: 000044091C00
time of crash: Tue Nov 10 16:50:45 CST 1998
age of system: 1 day, 5 hr., 28 min.
xmalloc debug: disabled
abend code: 0
csa: 0x0
>
>quit
如果crash命令输出>,stat子命令输出dump细节
⑤拷贝系统dump
在5L版本,pax命令允许拷贝、建立、修改大于2G的文件(象系统dump),用于迁移dump(先前版本
使用tar,cpio命令---但不能操作大于2G的文件),pax命令也以tar,cpio的格式查看修改文件。
Pax –r|-w|-rw –c –d –i –k –l –n –t –u –v –X –H|-L –p String –o Options –s ReplacementString
-x Format File Directory
-a:添加文件到归档的末尾
-c:匹配所有归档成员或文件(pattern参数指定的除外)
-d:只考虑路径不考虑路径的内容
-f Archive:指定要使用的归档文件的路径
-i:重命名文件或归档
-k:防止该命令覆盖存在的文件
-r:从标准输入读一归档文件
-v:写进程的信息
-w:以指定的归档格式写文件到标准输出
-x Format:指定输出的归档格式(pax----可以大于2G,cpio,ustar)
注意:不指定-x参数,缺省为tar格式,指定-x不指定Format,缺省为pax格式
pax –vf /etc/temp.tar查看tar文件
pax –x pax –wvf temp.tar /home/user/soft.tar /home/user/temp.tar建立一个pax格式文件
temp.tar,包含文件/home/user/soft.tar和/home/user/temp.tar,大于2G
pax –wvf /dev/rmt0 dump.out拷贝dump.out文件到磁带机
pax –rvf /var/adm/link.tar解压缩tar文件/var/adm/link.tar到当前目录
pax –rw run.pax /tmp拷贝run.pax文件到/tmp目录
⑥编译拷贝系统dump到媒质
命令snap用于收集系统的配置信息,提供方便的方法发送lslpp,errpt输出到服务支持中心,它收集
信息并压缩信息成pax文件,并可下载到磁带、软盘等媒质。
Snap –a –A –b –c –D –f –g –G –i –k –l –L –n –N –p –r –s –S –t –T –w –o OutputDev
-d Dir –v Component
-a:收集所有的系统信息,大约需要8M的/tmp空间
-c:建立/tmp/ibmsupt目录树或其他命名的目录下的所有文件的压缩pax镜像(snap.pax.Z文件)
-d Dir:指定可选的snap输出路径(缺省/tmp/ibmsupt)
-D:收集dump和/unix信息,使用主dump设备
-f:收集文件系统信息
-g:收集lslpp –hBc命令的输出,需要这些信息重建正确的OS环境,写输出到/tmp/ibmsupt/general/
/lslpp.hBc文件,收集通用的系统信息输出到/tmp/ibmsupt/general/general.snap文件
-k:收集内核信息
-L:收集LVM信息
-o Outputdev:拷贝压缩的镜像到磁带或软盘
-r:从/tmp/ibmsupt目录删除snap命令的输出
-v Component:显示输出,看指定名字或组的文件
/usr/sbin/snap –gfkD –o /dev/rmt0拷贝系统信息(包括文件系统和内核参数)到磁带
在执行snap –o和snap –c命令前,任何服务支持中心需要的附加信息都应该加到/tmp/ibmsupt目录
例如,服务支持中心(IBM)需要你提供一个说明问题的测试例子,则应拷贝它到/tmp/ibmsupt目录,
snap –o和snap –c命令执行时,该测试例子也被包括在里面。