内容


IBM p 系列管理员认证(Test 191)指南系列,第 2 部分

硬件管理

Comments

列出硬件设备

要了解您的系统的硬件特征,可以使用下面的命令:

  • lsdev 显示系统中的设备及其特征。
  • lspv 显示卷组中物理卷的相关信息。
  • lsattr 显示给定的设备或者设备类型的属性的相关信息。

例如:

  • 要列出您的系统中的磁带,可以使用 lsdev -C -c tape 命令。
  • 要列出您的系统中的磁盘,可以使用 lsdev -C -c disk 命令。

使用 lsdev 命令

您可以使用 lsdev 命令以显示设备配置数据库中各种设备的相关信息。您可以使用这个命令以显示 ODM 中的自定义设备对象类(使用 -C 标志)、或者 ODM 中预定义设备对象类(使用 -P 标志)的信息。

lsdev 命令的一般语法规则如下所示:

lsdev -C [ -c Class ] [ -s Subclass ] [ -t Type ] [ -f File ]

[ -F Format | -r ColumnName ] [ -h ] [ -H ] [ -l Name ]

[ -S State ]

lsdev -P [-c Class ] [ -s Subclass ] [ -t Type ] [ -f File ]

[ -F Format | -r ColumnName ] [ -h ] [ -H ]

表 1 中给出了 lsdev 命令的一些常用的标志。

表 1 lsdev 命令标志

标志 描述
-C 列出自定义设备对象类中设备的相关信息。缺省显示信息为名称、状态、位置和描述。这个标志不能与 -P 标志一同使用。
-c Class 指定设备类名。使用该标志可以限制输出到指定类中的设备。
-H 显示列输出上方的头部分。
-h 显示命令使用消息。
-P 列出预定义设备对象类中设备的有关信息。缺省显示信息为类、类型、子类和描述。该标志不能和 -C、-l 和 -S 标志一起使用。
-S 列出处于指定状态的所有设备,状态名由 State 参数指定。State 参数的值可以是以下之一:
  • d、D、0 或 defined(对于“已定义”状态)
  • a、A、1 或 available(对于“可用”状态)
  • s、S、2 或 stopped(对于“停止”状态)

下面给出了一些示例,说明如何使用 lsdev 命令列出有关系统中不同设备的信息。

列出预定义 ODM 数据库中的设备

要列出预定义设备对象类中的所有设备以及列标题,可以在命令行中输入:

lsdev -P -H

系统将显示与图 1 所示类似的输出。

图 1 列出预定义 ODM 数据库中的设备
图 1 列出预定义 ODM 数据库中的设备
图 1 列出预定义 ODM 数据库中的设备

列出自定义 ODM 数据库中的设备

要列出自定义设备对象类中的所有设备,可以输入:

lsdev -C -H

将显示与图 2 所示类似的输出:

图 2 列出自定义 ODM 数据库中的设备
图 2 列出自定义 ODM 数据库中的设备
图 2 列出自定义 ODM 数据库中的设备

列出可用的设备

要列出自定义设备对象类中处于 Available 状态的适配器,可以输入:

lsdev -C -c adapter -S a

这时将显示与图 3 所示类似的输出:

图 3 列出可用的设备
图 3 列出可用的设备
图 3 列出可用的设备

列出支持的设备

要列出系统支持的所有设备类,可以在命令行中输入:

lsdev -P -r class

这时将显示与图 4 所示类似的输出:

图 4 列出支持的设备
图 4 列出支持的设备
图 4 列出支持的设备

使用 lspv 命令

lsdev 命令可以获取有关您的系统中所安装的设备的一般信息;然而,您可以使用 lspv 命令找出有关您的物理卷的特定信息。

如果没有为 lspv 命令使用任何命令标志,那么缺省的行为是提供系统中所有已知物理卷,并一同打印出物理磁盘名称、物理卷标识 (PVID)、物理卷属于哪个卷组(如果有的话)。如果您为 lspv 命令指定了一个物理卷名,那么它将仅显示有关该物理卷的信息。lspv 命令的一般语法规则如下所示:

lspv [ -l | -p | -M ] [ -n DescriptorPhysicalVolume] [-vVolumeGroupID]

PhysicalVolume

表 2 中给出了 lspv 命令最常用的两个标志。

表 2 lspv 命令标志

标志 描述
-p 列出物理卷中的每个物理分区的范围、状态、区域、LV 名、类型和装入点。
-v VolumeGroupID 根据 VolumeGroupID 变量访问相关的信息。

例如,要显示您的系统中的物理卷,可以输入:

#lspv 
hdisk0 00615147ce54a7ee rootvg 
hdisk1 00615147a877976a rootvg

要显示物理卷 hdisk0 的状态和特征,可以使用下面的 lspv 命令:

lspv hdisk0

这时将显示与图 5 所示类似的输出:

图 5 列出物理卷特征
图 5 列出物理卷特征
图 5 列出物理卷特征

要按照物理分区编号列出物理卷 hdisk0 的状态和特征,可以使用下面的 lspv 命令:

lspv -p hdisk0

这时将显示与图 6 所示类似的屏幕。

图 6 按照物理分区列出物理卷特征
图 6 按照物理分区列出物理卷特征
图 6 按照物理分区列出物理卷特征

配置系统设备

当您向系统添加一个新的设备、或者需要对那些在启动过程中没有检测出的设备进行配置时,系统必须提供一种相应的方法以配置这些设备。cfgmgr 命令用于配置设备,并且有选择地将设备软件安装到系统中。要进行配置的设备由配置规则对象类(是设备配置数据库的一部分)控制。每条配置规则都指定了三项内容:

  • 要运行的可执行程序的完整路径名。
  • 何时执行该程序(相对于其他规则)。
  • 在哪个阶段运行该程序。

在系统启动的过程中,cfgmgr 命令将对所需的所有设备进行配置。

cfgmgr 命令可以识别配置规则的三个阶段:

  • 阶段 1
  • 阶段 2(正常启动的第二个启动阶段)
  • 阶段 3(服务启动的第二个启动阶段)

在阶段 1 中,将调用 cfgmgr 命令,并使用 -f 标志将其指定为阶段 1。cfgmgr 命令将运行所有阶段 1 的配置规则,这将对基础设备进行配置。在此之后,开始阶段 2 的执行,并使用 -s 标志调用 cfgmgr 命令。

通常,cfgmgr 命令将运行调用期间所指定的阶段的所有规则(-f 标志表示阶段 1 规则)。然而,如果使用了 -l 标志,那么 cfgmgr 命令将仅对命名的设备及其子设备进行配置。

如果在调用 cfgmgr 命令时没有使用阶段选项(例如,没有使用 -f、-s、或者 -p 标志),那么该命令将运行阶段 2 规则。要运行阶段 3 规则,唯一的方法是使用 -p 标志。

根据在 seq 字段中指定的值,对每个阶段的配置规则进行排序。这个字段是一个整数,用于指定执行该规则的优先顺序(相对于本阶段中的其他规则)。seq 字段所指定的数值越大,其优先顺序越低;例如,如果在 seq 字段中所指定的值为 1,那么该规则将在值为 10 的规则之前执行。有一个例外的情况:如果 seq 字段的值为 0,则表示一种随意的情况,任何 seq 字段值为 0 的规则都将最后执行。

因此,如果 seq 字段值为 1,则表示最高的优先顺序(第一个运行)。

如果对于任何设备,在配置设备时检测到没有安装设备软件,那么 cfgmgr 命令将返回一个警告消息,其中包括必须安装的设备包的名称、或者可能的设备包名称的列表。如果确定了特定的设备包名称,那么它将作为唯一的包名显示在警告消息的下一行中。如果无法确定特定的名称,那么将在一行中显示以冒号分隔的可能包名的列表。如果检测到有多个设备没有安装设备软件,那么将为其中的每个设备显示包名或者可能包名的列表。

请参见下面的示例:

cfgmgr:0514-621 WARNING:The following device packages are required for device support 
but are not currently installed.
devices.pci.22100020
devices.pci.14101800
devices.pci.scsi:devices.pci.00100300:devices.pci.NCR.53C825

在这个示例中,发现有两个设备没有安装相应的软件,并且 cfgmgr 命令显示了必须安装的设备包的名称。在这个示例中,发现第三个设备也没有安装软件,cfgmgr 命令显示了几种可能的设备包名。

如果为一个设备确定了多个可能的包名,通常只有一个名称对应于安装媒体中的设备包。这就是要安装的包。然而在有些情况下,可能有多个名称对应于安装媒体中的设备包。在这种情况下,对于列表中的第一个包名(在安装媒体中存在一个实际的设备包),它是必须安装的包。如果使用带 -i 标志的 cfgmgr 命令,那么将安装正确的包。

如果使用 -i 标志调用 cfgmgr 命令,那么该命令将尝试自动地为每个刚检测到的设备安装设备软件。-i 标志的设备变量用于指定在何处可以找到安装媒体。安装媒体可以是硬件设备(如磁带或者磁盘驱动器)、包含安装映像的目录、或者安装映像文件本身。

在表 3 中,列出了 cfgmgr 命令的一些最常用的标志。

表 3 cfgmgr 命令标志

标志 描述
-i Device 指定安装媒体的位置。
-l Name 指定命名的设备,以便配置该设备及其子设备。
-p Phase 指定 cfgmgr 命令以运行指定的阶段。
-s
指定 cfgmgr 命令以运行阶段 2 配置规则。
-v 指定要写到 stdout 的细节信息的类型。

表 4 中给出了 cfgmgr 命令所使用的配置规则。

表 4 cfgmgr 配置规则

规则 描述
phase 指定该规则是否属于阶段 1、阶段 2、或者阶段 3(服务模式的第二个启动阶段)。
seq 以一个整数指定该规则的相对优先顺序。
rule 一个包含要运行的程序的完整路径名的字符串(还可以包含任何标志,但是它们必须跟在程序名之后,对于整个字符串的运行而言,就好像是在命令行中输入的一样)。

下面的示例是基于配置规则的,其中包含下面的信息:

phase seq rule
1 1 /usr/lib/methods/defsys
1 10 /usr/lib/methods/deflvm
2 1 /usr/lib/methods/defsys
2 5 /usr/lib/methods/ptynode
2 10 /usr/lib/methods/startlft
2 15 /usr/lib/methods/starttty
3 1 /usr/lib/methods/defsys
3 5 /usr/lib/methods/ptynode
3 10 /usr/lib/methods/startlft
3 15 /usr/lib/methods/starttty

当使用 -f 标志调用 cfgmgr 命令时,该命令将读取所有 phase = 1 的配置规则,并以下面的顺序执行它们:

/usr/lib/methods/defsys
/usr/lib/methods/deflvm

注意:在启动系统之后,不能使用 -f 标志。

当使用 -s 标志调用 cfgmgr 命令时,该命令将读取所有 phase = 2 的配置规则,并以下面的顺序执行它们:

/usr/lib/methods/defsys
/usr/lib/methods/ptynode
/usr/lib/methods/startlft
/usr/lib/methods/starttty

当使用 -p 标志调用 cfgmgr 命令时,该命令将读取所有 phase = 3 的配置规则,并以下面的顺序执行它们:

/usr/lib/methods/defsys
/usr/lib/methods/ptynode
/usr/lib/methods/startlft
/usr/lib/methods/starttty

如果运行不带标志的 cfgmgr 命令,那么该命令的功能与使用 -s 标志相同。要配置所检测到的、连接到 SCSI0 适配器的设备,可以使用下面的 cfgmgr 命令:

cfgmgr -l scsi0

要在配置过程中自动地安装设备软件(软件包含在某个目录中),可以使用下面的 cfgmgr 命令:

cfgmgr -i /usr/sys/inst.images

系统管理服务

cfgmgr 命令可以在软件级别上配置设备。您可以使用系统管理服务(System Management Services,SMS),以便在硬件级别上检查和配置系统。使用 SMS,您可以查看是否已经检测到所有可用的硬件、或者测试某个硬件是否出现了故障。

要访问 SMS 实用工具,可以使用下面操作步骤:

1. 开始时,您的计算机是关闭的。

2. 如果您的系统需要 SMS 磁盘,那么将其插入到客户端的磁盘驱动器,并打开计算机。如果您此时不插入 SMS 磁盘(而这是必需的),那么稍后将提示您插入磁盘。

3. 这时将在您的显示器下方,开始从左到右显示一些图标,请按 F1 键获得图形化的 SMS 菜单、或者按 F4 键获得 ASCII SMS 菜单。

注意:如果在显示了最后一个图标之后按 F1 或者 F4 键,那么将使用常规模式启动列表,而不是系统管理服务磁盘。

4. 这时您的屏幕上将显示 SMS 菜单。您可以根据需要对您的硬件进行测试或者配置。

您可以在 SMS 菜单中更改顾问密码,以便只有那些经过授权的人可以访问 SMS 实用工具。如果您忘记了这个密码,那么唯一的恢复方法是移除机载的系统电池。

硬件设备兼容性

RSPC 和 RS/6000 Platform Architecture (RPA) 系统可以使用下面的方法支持所连接的设备:

  • PCI
  • ISA
  • SCSI

如果安装了设备支持软件,那么在系统启动、并且没有发现任何冲突(例如,将相同的 SCSI ID 用于两个 SCSI 设备)的情况下运行配置管理器程序 (cfgmgr) 时,将自动地配置 PCI 和 SCSI 设备。

非本机 ISA 设备必须手动地进行配置,并且您可能需要更改某些设备预定义的、或者自定义的属性值,尤其是在配置两个或者多个相同类型的 ISA 设备时。

尽管您可以在系统中使用多个适配器,但是您却不能在相同的适配器上运行不同的设备。根据您的特定计算机的规范,可能存在各种不同的配置。例如,如果您使用了一个 SCSI Single-Ended (SE) Ultra Controller,那么它只能连接 SE SCSI 设备,而不能连接差分设备。同样地,如果您使用了一个 100 Mbps Ethernet LAN,那么 10 Mbps 以太网卡将无法工作。

设备配置数据库

预定义的数据库、或者自定义的数据库中所包含的信息组成了设备配置数据库,它们由对象数据管理器 (ODM) 进行管理。

  • 预定义的数据库包含系统中配置的所有可能的设备的配置数据。
  • 自定义的数据库包含系统中当前已经定义的和配置的所有设备的配置数据。

当在系统启动和运行时执行配置管理器 (cfgmgr) 程序时,存储在设备配置数据库中的设备信息允许对 RISC System/6000 系统中的微通道 (microchannel) 设备和 RSPC 以及 RPA(非微通道)系统中的 PCI 设备进行自动配置。

对于非本机 ISA 设备,配置数据库的预定义部分所包含的信息数据不足以执行自动的、无冲突的 ISA 设备配置。因此,在第一次对设备进行配置时,用户需要手动地自定义 ISA 设备所使用的一些值(例如,中断级别、共享内存地址,等等)。

3.5 使用 lsattr 命令

在对系统中所有的设备进行了配置之后,您可以使用 lsattr 命令来显示给定设备或者设备类型属性的相关信息。如果您没有指定设备的逻辑名 (-l Name),那么您必须使用一个或者组合使用所有 -c Class、-s Subclass、-t Type 标志,以便唯一地标识预定义的设备。lsattr 命令的一般语法规则如下所示:

lsattr { -D [ -O ] | -E [ -O ] | -F Format } -l Name [ -a Attribute ] ...

[ -f File ] [ -h ] [ -H ]

lsattr { -D [ -O ] | -F Format } { [ -c Class ] [ -s Subclass ] [ -t Type ] }

[ -a Attribute ] ...[ -f File ] [ -h ] [ -H ]

lsattr -R { -l Name | [ -c Class ] [ -s Subclass ] [ -t Type ] } -a Attribute

[ -f File ] [ -h ] [ -H ]

在表 5 中,列出了 lsattr 命令的一些常用标志。

表 5 lsattr 命令标志

标志 描述
-D
在不使用 -O 标志的情况下,为某个特定的设备显示属性名、缺省值、描述和可由用户进行设置的标志值。在使用 -O 标志的情况下,-D 标志将仅显示属性名和缺省值(使用冒号的格式)。
-E
在不使用 -O 标志的情况下,为某个特定的设备显示属性名、当前值、描述和可由用户进行设置的标志值。在使用 -O 标志的情况下,-E 标志将仅显示属性名和当前值(使用冒号的格式)。这个标志不能与 -c、-D、-F、-R、-s 或者 -t 标志一同使用。
-F Format
以用户指定的格式显示输出。
-a Attribute
显示特定设备或者设备类型的指定属性的信息。
-c Class
指定设备类名。这个标志不能与 -E 或者 -l 标志一同使用。
-f File
从 File 参数读取所需的标志。
-H
显示列输出上方的头部分。与 -O 或者 -R 标志一同使用 -H 标志是毫无意义的;-O 或者 -R 标志将会生效。
-l Name
指定要显示其属性名或者值的设备在自定义设备对象类中的设备逻辑名。
-O 显示所有的属性名(以冒号进行分隔),并且在第二行中显示所有相对应的属性值(以冒号进行分隔)。
-R
显示属性名合法的值。-R 标志不能与 -D、-E、-F 和 -O 标志一同使用,但是可以与 -c、-s 和 -t 标志的任意组合一同使用,以便唯一地标识预定义设备对象类中的设备,或者与 -l 标志一同使用。-R 标志将以垂直列的形式显示列属性值,如下所示:
Value1
Value2
.
.
ValueN

-R 标志以 x...n(+i) 的方式显示范围属性值,其中 x 为该范围的开始,n 为该范围的结束,而 i 为增量。
-s Subclass
指定设备子类名。使用该标志可以限制输出到指定子类中的设备。这个标志不能与 -E 或者 -l 标志一同使用。
-t Type
指定设备类型名。使用该标志可以限制输出到指定类中的设备。这个标志不能与 -E 或者 -l 标志一同使用。

在显示自定义设备的属性的有效值时,将从配置数据库(而不是设备)中获取信息。

通常,数据库值反映了设备的配置方式,除非它是使用带 -P 或者 -T 标志的 chdev 命令进行配置的。如果出现了这种情况,那么在下一次系统启动之前,lsattr 命令所显示的信息可能无法正确地说明当前设备配置。

如果您使用 -D 或者 -E 标志,那么将输出属性的名称、值、描述,以及可由用户进行设置的字符串的缺省值,除非同时还使用了 -O 标志。-O 标志将显示所有指定属性的名称(以冒号进行分隔)。在下一行中,-O 标志将显示所有相对应的属性值(以冒号进行分隔)。-H 标志可以与 -D、-E 或者 -F 标志一同使用,以便在列名的上方显示标题。在使用 -F Format 标志时,您可以将输出的格式定义为用户指定的格式,其中的 format 参数是一个括起来的列名列表(以非字母数字字符或者空白字符进行分隔)。

您可以在命令行或者指定的 file 参数中提供各种标志。下面的示例说明了 lsattr 命令的使用。

  • 要列出磁带设备 rmt0 的当前属性值,可以使用下面的 lsattr 命令:
# lsattr -l rmt0 -E
mode yes Use DEVICE BUFFERS during writes           True 
block_size 1024 BLOCK size (0=variable length)     True 
extfm no Use EXTENDED file marks                      True 
ret_error no RETURN error on tape change or reset True
  • 要列出磁带设备 rmt0 的缺省属性值,可以使用下面的 lsattr 命令:
# lsattr -l rmt0 -D
mode yes Use DEVICE BUFFERS during writes           True 
block_size 1024 BLOCK size (0=variable length)     True 
extfm no Use EXTENDED file marks                      True 
ret_error no RETURN error on tape change or reset True
  • 要列出 SCSI 适配器 scsi0 的 bus_intr_lvl 属性的当前值,可以使用下面的 lsattr 命令:
# lsattr -l scsi0 -a bus_intr_lvl -E
bus_intr_lvl 14 Bus interrupt level False
  • 要列出 TTY 设备 tty0 的 login 属性的可能值,可以使用下面的 lsattr 命令:
# lsattr -l tty0 -a login -R
enable 
disable 
share 
delay 
hold
  • 要列出 tty0 所连接到的串行端口的 speed 属性的当前值,可以使用下面的 lsattr 命令:
# lsattr -El tty0 -a speed 
speed 9600 BAUD rate True

根据您的软件配置,您可能会看到与上面的输出不相同的命令响应。尝试对不同的设备和属性执行该命令,以便掌握它的工作方式。

使用 SMIT配置各种设备

SMIT 快速路径 smitty devices 允许您使用 SMIT 菜单界面完成下面的工作:

  • 安装或者配置在 IPL 之后添加的设备。
  • 删除设备。
  • 列出现有的设备。
  • 更改或者显示设备的特征。
  • 对各种设备进行问题确定。

系统错误日志

在您配置了系统中所有的设备、并将系统投入生产运行之后,您可能会在日常操作的过程中碰到与硬件相关的错误。AIX 提供了错误日志记录机制,以便在错误日志中记录硬件和软件故障。这个错误日志可用于各种信息目的、或者进行故障检测以及确定纠正性的操作。

当操作系统模块检测到一个错误时,将开始执行错误日志记录进程。然后,代码中的错误检测段将错误信息发送到 errsave 和 errlast 内核服务或者 errlog 应用程序子例程,它们会将信息写入到 /dev/error 特殊文件。然后,这个进程将为所收集到的数据添加一个时间戳。您可以使用 errpt 命令从错误日志中检索一条错误记录。

使用 errdemon 命令

errdemon 进程将不断地检测 /dev/error 文件中的新条目。

如果新的数据与错误记录模板存储库中的某个项目相匹配,那么该守护进程将收集来自其他系统组件的附加信息。

通常,在系统启动时将自动地启动 errdemon 命令,然而,如果它由于某种原因而中断,那么您需要重新启动它,

可以输入:

/usr/lib/errdemon

要确定您的系统的错误日志文件的路径,可以运行下面的命令:

# /usr/lib/errdemon -l
Error Log Attributes
--------------------------------------------
Log File /var/adm/ras/errlog
Log Size 1048576 bytes
Memory Buffer Size 8192 bytes

要更改错误日志文件的最大大小,可以输入:

/usr/lib/errdemon -s 2000000

要更改错误日志设备驱动器的内部缓冲区的大小,可以输入:

/usr/lib/errdemon -B 16384
这时将显示与以下所示类似的消息:
0315-175 The error log memory buffer size you supplied will be rounded up to 
a multiple of 4096 bytes.

使用 errpt 命令

要检索错误日志中的条目,您可以使用 errpt 命令。errpt 命令将根据错误日志中的条目生成一个错误报告。它包括用于选择匹配特定标准的错误的标志。通过使用缺省情况,您可以根据错误发生和记录的顺序,以逆序的方式显示错误日志条目。

注意:errpt 命令并不执行错误日志分析;要进行分析,可以使用 diag 命令。

errpt 命令的一般语法规则如下所示:

errpt [ -a ] [ -c ] [ -d ErrorClassList ] [ -e EndDate ] [ -g ] [ -i File ]

[ -j ErrorID [ ,ErrorID ] ] | [ -k ErrorID [ ,ErrorID ]] [ -J ErrorLabel

[ ,ErrorLabel ] ] | [ -K ErrorLabel [ ,ErrorLabel ] ] [ -l SequenceNumber ]

[ -m Machine ] [ -n Node ] [-s StartDate ] [ -F FlagList ]

[ -N ResourceNameList ] [ -R ResourceTypeList ] [ -S ResourceClassList ]

[ -T ErrorTypeList ] [ -y File ] [ -z File ]

表 6 中给出了 errpt 命令最常用的一些标志。

表 6 errpt 命令标志

标志 描述
-a
以详细的格式显示错误日志文件中的错误信息。如果与 -t 标志结合起来使用的话,那么将显示模板文件中的所有信息。
-j ErrorID[,ErrorID]
只包括由 ErrorID(错误标识符)变量指定的错误日志条目。ErrorID 变量可以用逗号 (,) 隔开,或者在双引号 ("") 中括起来,然后用逗号 (,) 或者空格字符进行分隔。
当它与 -t 标志结合在一起使用时,将在错误模板存储库中对条目进行处理。

-s StartDate
指定所有在 StartDate 变量指定的日期后面的记录,其中 StartDate 变量的形式为 mmddhhmmyy(月、日、小时、分和年)。
-t
处理错误记录模板存储库而不是错误日志。-t 标志可以用来以报表的形式查看错误记录模板。
-F FlagList
根据该模板的 Alert、Log 或者 Report 字段的值来选择错误记录模板。
-J ErrorLabel
包括由 ErrorLabel 变量指定的错误日志记录。

下面的部分介绍了一些使用 errpt 命令的示例。

以汇总的形式显示错误

要显示到现在为止所碰到的错误的完整汇总报告,可以在命令行中使用下面的 errpt 命令:

# errpt
IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION
2BFA76F6 1025181998 T S SYSPROC SYSTEM SHUTDOWN BY USER
9DBCFDEE 1025182198 T O errdemon ERROR LOGGING TURNED ON
2BFA76F6 1025175998 T S SYSPROC SYSTEM SHUTDOWN BY USER
9DBCFDEE 1025180298 T O errdemon ERROR LOGGING TURNED ON
2BFA76F6 1025174098 T S SYSPROC SYSTEM SHUTDOWN BY USER
9DBCFDEE 1025174398 T O errdemon ERROR LOGGING TURNED ON
......... (Lines Removed)
2BFA76F6 1021134298 T S SYSPROC SYSTEM SHUTDOWN BY USER
9DBCFDEE 1021135098 T O errdemon ERROR LOGGING TURNED ON
2BFA76F6 1021120198 T S SYSPROC SYSTEM SHUTDOWN BY USER

variable.

显示错误细节信息

要为系统中碰到的所有错误显示详细的报告,可以使用下面的 errpt 命令:

# errpt -a
-----------------------------------------------------------------------
LABEL:REBOOT_ID
IDENTIFIER:2BFA76F6
Date/Time:Sun Oct 25 18:19:04
Sequence Number: 60
Machine Id:006151474C00
Node Id:mynode
Class:S
Type:TEMP
Resource Name:SYSPROC
Description
SYSTEM SHUTDOWN BY USER
Probable Causes
SYSTEM SHUTDOWN
Detail Data
USER ID
0
0=SOFT IPL 1=HALT 2=TIME REBOOT
0
TIME TO REBOOT (FOR TIMED REBOOT ONLY)
.......... (Lines Removed)
-----------------------------------------------------------------------
LABEL:DISK_ERR3
IDENTIFIER:35BFC499
Date/Time:Thu Oct 22 08:11:12
Sequence Number: 36
Machine Id:006151474C00
Node Id:mynode
Class:H
Type:PERM
Resource Name:hdisk0
Resource Class:disk
Resource Type:scsd
Location:04-B0-00-6,0
VPD:
Manufacturer................IBM
Machine Type and Model......DORS-32160 !#
FRU Number..................
ROS Level and ID............57413345
Serial Number...............5U5W6388
EC Level....................85G3685
Part Number.................07H1132
Device Specific.(Z0)........000002028F00001A
Device Specific.(Z1)........39H2916
Device Specific.(Z2)........0933
Device Specific.(Z3)........1296
Device Specific.(Z4)........0001
Device Specific.(Z5)........16
Description
DISK OPERATION ERROR
Probable Causes
DASD DEVICE
STORAGE DEVICE CABLE
Failure Causes
DISK DRIVE
DISK DRIVE ELECTRONICS
STORAGE DEVICE CABLE
Recommended Actions
PERFORM PROBLEM DETERMINATION PROCEDURES
Detail Data
SENSE DATA
0A06 0000 2800 0088 0002 0000 0000 0200 0200 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0001 0001 2FC0
.......... (Lines Removed)
-----------------------------------------------------------------------
LABEL:ERRLOG_ON
IDENTIFIER:9DBCFDEE
Date/Time:Fri Sep 18 14:56:55
Sequence Number: 14
Machine Id:006151474C00
Node Id:mynode
Class:O
Type:TEMP
Resource Name:errdemon
Description
ERROR LOGGING TURNED ON
Probable Causes
ERRDEMON STARTED AUTOMATICALLY
User Causes
/USR/LIB/ERRDEMON COMMAND
Recommended Actions
NONE

根据时间基准来显示错误

如果您怀疑前一天可能碰到了一些错误,那么您可以为过去 24 小时中所记录的所有错误显示一个详细的报告,其中字符串等于当前月、日、小时、分和年减去 24 小时。要完成这个任务,可以使用下面的 errpt 命令:

# date
Wed Aug 29 09:30:42 CDT 2001
# errpt -a -s 0828093001
---------------------------------------------------------------------------
LABEL:REBOOT_ID
IDENTIFIER:2BFA76F6
Date/Time:Tue Aug 28 15:53:34
Sequence Number: 2
Machine Id:003826424C00
Node Id:mynode
Class:S
Type:TEMP
Resource Name:SYSPROC
Description
SYSTEM SHUTDOWN BY USER
Probable Causes
SYSTEM SHUTDOWN
Detail Data
USER ID
0
0=SOFT IPL 1=HALT 2=TIME REBOOT
0
TIME TO REBOOT (FOR TIMED REBOOT ONLY)
0
---------------------------------------------------------------------------
LABEL:ERRLOG_ON
IDENTIFIER:9DBCFDEE
Date/Time:Tue Aug 28 15:56:27
Sequence Number: 1
Machine Id:003826424C00
Node Id:mynode
Class:O
Type:TEMP
Resource Name:errdemon
Description
ERROR LOGGING TURNED ON
Probable Causes
ERRDEMON STARTED AUTOMATICALLY
User Causes
/USR/LIB/ERRDEMON COMMAND
Recommended Actions
NONE

使用 errlogger 命令

errlogger 命令允许您将操作员消息记录到系统错误日志。这些消息在长度上最大可达 1024 个字节。

在下面的示例中,显示了 errlogger 命令的使用及其输出。

# errlogger Testing use of errlogger command
# errpt
IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION
AA8AB241 0904103401 T O OPERATOR OPERATOR NOTIFICATION
1581762B 0831110701 T H cd0 DISK OPERATION ERROR
2BFA76F6 0828155301 T S SYSPROC SYSTEM SHUTDOWN BY USER
# errpt -a -j AA8AB241
---------------------------------------------------------------------------
LABEL:OPMSG
IDENTIFIER:AA8AB241
Date/Time:Tue Sep 4 10:34:17
Sequence Number: 6
Machine Id:003826424C00
Node Id:mynode
Class:O
Type:TEMP
Resource Name:OPERATOR
Description
OPERATOR NOTIFICATION
User Causes
ERRLOGGER COMMAND
Recommended Actions
REVIEW DETAILED DATA
Detail Data
MESSAGE FROM ERRLOGGER COMMAND
Testing use of errlogger command
#

其他错误处理命令

除了 errpt 命令之外,还可以将下面的命令与 errpt 命令一同使用,以便查找硬件错误,并对错误日志记录机制所报告的任何问题采取纠正措施:

errclear 删除错误日志中的条目。

errinstall 安装错误日志记录消息集中的消息。

errupdate 更新错误记录模板存储库。

诊断硬件问题

diag 命令是运行各种可选的任务和服务帮助的起点,以便帮助进行硬件问题确定。diag 命令提供了一个菜单驱动的界面,但是也可以使用命令行标志以执行各种特定的任务。

如果您怀疑出现了问题,可以使用下面的步骤进行诊断。

1. 运行 diag 命令。

2. 按 Enter 以跳过信息屏幕。

3. 选择“Diagnostic Routines”。

4. 选择“Problem Determination”。

这将指导 diag 命令对系统进行测试,并对错误日志进行分析。

图 7 显示了对存在一个问题的系统运行诊断任务所得到的结果。

图 7 显示一个问题的 diag 屏幕
图 7 显示一个问题的 diag 屏幕
图 7 显示一个问题的 diag 屏幕

另外,如果您怀疑 sysplanar0 设备出现了问题,可以使用 diag -d sysplanar0 -v -e 命令来执行相同的诊断任务。

系统日志

为了记录系统消息,AIX 使用了 syslogd。syslogd 守护进程读取数据报套接字,并将每行消息发送到 /etc/syslog.conf 配置文件所描述的目标。syslogd 守护进程将在被激活和收到挂起信号时读取该配置文件。

syslogd 守护进程创建 /etc/syslog.pid 文件。此文件包含单行内容,其中带有 syslogd 守护进程的命令进程 ID。它用于结束或者重新配置 syslogd 守护进程。

发送到 syslogd 守护进程的终止信号将结束该守护进程。syslogd 守护进程记录结束信号信息并立即终止。

每个消息为一行。消息可以包含优先级代码,此代码由位于行首的尖括号 (< >) 中包含的数字来标记。可能会对长度超过 900 个字节的消息进行截断。

/usr/include/sys/syslog.h 包含文件定义配置文件使用的功能和优先级代码。本地编写的应用程序使用 syslog.h 文件中包含的定义,从而通过 syslogd 守护进程记录消息。

syslogd 命令的一般语法规则如下所示:

syslogd [ -d ] [ -s ] [ -f ConfigurationFile ] [ -m MarkInterval ] [-r]

表 7 中给出了在启动 syslogd 时的一些常用标志。

表 7 syslogd 守护进程标志

标志 描述
-d 打开调试。
-f Config File
指定替代的配置文件。
-m MarkInterval 指定标记命令消息之间相隔的分钟数。如果不使用此标志,那么标记命令将每隔 20 分钟发送一条优先级为 LOG_INFO 的消息。包含一个 *(星号)的选择器字段将禁用此功能,此选择器字段将选择所有其他功能。
-s 指定为本地系统上生成的所有转发 syslogd 消息转发一条缩短的消息到另一个系统(如果作此配置的话)。
-r 禁止对从远程主机收到的消息进行日志记录。

syslogd 守护进程使用一个配置文件,以根据消息的优先级和生成消息的功能来确定将系统消息发送到何处。在缺省情况下,syslogd 读取缺省配置文件 /etc/syslog.conf,但是如果指定了 -f 标志,则可以指定替代的配置文件。

syslogd 配置文件

/etc/syslog.conf 文件可以控制 syslogd 守护进程的行为。例如,syslogd 使用 /etc/syslog.conf 文件确定将错误消息发送到何处,或如何对不同的系统事件作出反应。下面显示了缺省 /etc/syslog.conf 文件的一部分。

/etc/syslog.conf - control output of syslogd
#
# Each line must consist of two parts:-
#
# 1) A selector to determine the message priorities to which the
# line applies
# 2) An action.

#
# The two fields must be separated by one or more tabs or spaces.
#
# format:
#
# <msg_src_list> <destination>
#
# where <msg_src_list> is a semicolon separated list of <facility>.<priority>
# where:
#
# <facility> is:
# * - all (except mark)
# mark - time marks
# kern,user,mail,daemon, auth,...(see syslogd(AIX Commands Reference))
#
# <priority> is one of (from high to low):
# emerg/panic,alert,crit,err(or),warn(ing),notice,info,debug
# (meaning all messages of this priority or higher)
#
# <destination> is:
# /filename - log to this file
# username[,username2...]- write to user(s)
# @hostname - send to syslogd on this machine
# * - send to all logged in users
#
# example:
# "mail messages, at debug or higher, go to Log file.File must exist."
# "all facilities, at debug and higher, go to console"
# "all facilities, at crit or higher, go to all users"
# mail.debug /usr/spool/mqueue/syslog
# *.debug /dev/console
# *.crit *

除了包含 syslogd 守护进程设置的 /etc/syslog.conf 文件外,/etc/syslog.pid 文件还包含正在运行的 syslogd 守护进程的进程 ID。

配置文件的格式

本部分描述了 /etc/syslog.conf 文件的格式,以及如何解释此文件中的不同条目。syslogd 守护进程配置文件中的行包含一个选择器字段(selector field)和一个操作字段(action field),两者之间由一个或多个制表符分隔。

选择器字段指定功能和优先级。功能名称之间用逗号 (,) 分隔,选择器的功能和优先级部分之间用句点 (.) 分隔,同一选择器字段中的多个条目之间用分号 (;) 分隔。要选择所有功能,可以使用一个星号 (*)。

操作字段确定要接收消息的目标(文件、主机或用户)。如果将消息发送到远程主机,远程系统将按照自己的配置文件中的指示来处理消息。要在用户的终端上显示消息,目标字段必须包含一个有效的、已登录系统用户的名称。

功能

表 8 列出了 /etc/syslog.conf 文件中使用的部分功能。可以在选择器字段中使用这些系统功能名称。

表 8 /etc/syslog.conf 文件中使用的功能

功能 描述
kern 内核
uesr 用户级别
mail 邮件子系统
daemon 系统守护进程
auth 安全或者授权
syslog syslogd 守护进程
lpr 行式打印机子系统
news 新闻子系统
uucp uucp 子系统
* 所有功能

优先级

表 9 列出了 /etc/syslog.conf 文件中使用的优先级。您可以在选择器字段中使用这些消息优先级。指定优先级和所有更高优先级的消息均按指示进行发送。

表 9 /etc/syslog.conf 文件的优先级

优先级 描述
emerg 指定紧急消息 (LOG_EMERG)。这些消息不分发给所有用户。可以将 LOG_EMERG 优先级的消息记录到单独的文件中以便检查。
alert 指定重要的消息 (LOG_ALERT),如严重硬件错误。这些消息将分发给所有用户。
crit 指定未分类为错误的关键消息 (LOG_CRIT),如不正确的登录尝试。LOG_CRIT 和更高优先级的消息将发送给系统控制台。
err 指定表示错误情况的消息 (LOG_ERR),如不成功的磁盘写操作。
warning
指定表示异常但可恢复的情况的消息 (LOG_WARNING)。
notice 指定重要的信息性消息 (LOG_NOTICE)。
没有指定优先级的消息将映射为此优先级。
这些消息比信息性消息更重要,但比警告消息低。
info 指定信息性消息 (LOG_INFO)。这些消息可以丢弃,但是在分析系统时很有用。
debug 指定调试消息 (LOG_DEBUG)。这些消息可以丢弃。
none 排除选定的功能。仅当在同一选择器字段中的前面有一个带 *(星号)的条目时,此优先级才有用。

目标

表 10 列出了 /etc/syslog.conf 文件中使用的一些目标。

您可以在操作字段中使用这些消息目标。

表 10 /etc/syslog.conf 文件的目标描述

目标 描述
File Name 以追加模式打开的文件的完整路径名称。
@Host 主机名称,前面有一个 @ 符号。
User[, User][...] 用户名。
* 所有用户。

使用系统日志

要自定义 /etc/syslog.conf 文件以便满足所需的条件,应该通过编辑 /etc/syslog.conf 文件来更新系统日志。在编辑 /etc/syslog.conf 文件并向其添加自己的行以后,您需要重新启动 syslogd 守护进程。您可以运行以下命令来完成这项任务:

1. 检查以确定 syslogd 守护进程的进程 ID。在此例中,该进程 ID 是 5426。

# ps -ef | grep syslogd 
root 5426 4168 0 Nov 01 - 0:00 /usr/sbin/syslogd 
root 24938 25854 2 12:04:03 pts/6 0:00 grep syslog

2. 使用 stopsrc 命令终止 syslogd 守护进程,如下所示:

# stopsrc -s syslogd
051044 The stop of the syslogd Subsystem was completed successfully.

3. 检查 syslogd 守护进程是否已成功终止。

# ps -ef | grep syslogd 
root 26112 25854 2 12:04:16 pts/6 0:00 grep syslog

4. 重新启动 syslogd 守护进程。

# startsrc -s syslogd
051059 The syslogd Subsystem has been started.Subsystem PID is 13494.

下面是 /etc/syslog.conf 文件用法的几个示例。

  • 要将调试级或以上的所有邮件功能消息记录到文件 /tmp/mailsyslog,可以输入以下命令:

mail.debug /tmp/mailsyslog

其中:

  1. 按照表 8,mail 是功能。
  2. 按照表 9,debug 是优先级。
  3. 按照表 10,/tmp/mailsyslog 是目标。
  • 要将除来自邮件功能以外的所有系统消息发送到名为 rigil 的主机,可以输入以下命令:

*.debug;mail.none @rigil

其中:

  1. 按照表 8,* 和 mail 是功能。
  2. 按照的表 9,debug 和 none 是优先级。
  3. 按照表 10,@rigil 是目标。
  • 要将来自所有功能的 emerg 优先级的消息和来自邮件及守护进程功能的 crit 及以上优先级的消息发送到用户 nick 和 jam,可以输入以下命令:

*.emerg;mail,daemon.crit nick, jam

其中:

  1. 按照表 8,*、mail 和 daemon 是功能。
  2. 按照表 9,emerg 和 crit 是优先级。
  3. 按照表 10,nick 和 jam 是目标。
  • 要将所有邮件功能消息发送到所有用户的终端屏幕,可以输入以下命令:

mail.debug *

其中:

  1. 按照表 8,mail 是功能。
  2. 按照表 9,debug 是优先级。
  3. 按照表 10,* 是目标。

设置 ASCII 终端

3151 显示器可以直接连接、或者通过调制解调器连接到 AIX 系统。

可以使用一个本机串行端口(如图 8 所示)、或者通过异步适配器(图 9 所示)建立到 AIX 系统的连接。另外,可以将打印机连接到 3151 显示器,AIX 支持将打印机作为连接到终端的打印设备 (Terminal Attached Printing),如图 9 所示。

图 8 将一个串行终端连接到 RS/6000 系统
图 8 将一个串行终端连接到 RS/6000 系统
图 8 将一个串行终端连接到 RS/6000 系统
图 9 将终端连接到直连的异步适配器
图 9 将终端连接到直连的异步适配器
图 9 将终端连接到直连的异步适配器

要添加一个 TTY,可以使用下面的操作方法:

1. 执行 smitty tty,并选择“Add a TTY”或者执行 smitty maktty。

2. 系统将提示您输入 TTY 类型和父适配器。从列表中选择正确的值,然后按 Enter。

这时将显示与图 10 所示类似的屏幕:

图 10 添加一个 tty
图 10 添加一个 tty
图 10 添加一个 tty

3. 在 PORT number 字段中,选择您希望将这个 TTY 添加到的端口号。对于 RAN,请按照位置代码规则以选择合适的端口号。

4. 将 TERMINAL Type 字段更改为您所使用的终端的类型。这个字段非常重要,因为如果不能正确地设置这个字段,您可能无法使用终端上所有的键。TERM 环境变量可以存储这个设置。通过使用您的 TERM 环境变量、并使用 export 命令存储您希望使用的终端仿真,您可以更改终端仿真设置。例如,要使用 ibm3151 终端仿真,可以使用下面的命令:

TERM=ibm3151; export TERM

5. 设置线路速度和终端的通信类型(1/8/N 或者 1/7/E),然后按 Enter。

这将在 /dev 目录中创建一个设备特殊文件,并向 /etc/inittab 文件添加一个条目(对您的终端运行 getty 进程),以便您的终端在系统启动时是可用的。它还将为您刚添加的终端向自定义 ODM (CuDv) 数据库添加另一个条目。

您还可以直接在命令行中添加 TTY。要添加一个使用适配器 sa0 和端口 s1 的 ibm3151 RS232 终端,并且支持登录,那么可以使用下面的命令:

mkdev -c tty -t tty -s rs232 -p sa0 -w s1 -a login=enable -a term=ibm3151

您可以使用下面的命令删除终端:

rmdev -l tty_name -d

其中,可以通过使用命令 tty、或者列出所有的 TTY 然后选择希望删除的 tty,从而确定 tty_name。

在 ASCII 终端中,按如下所示设置通信选项:
Line Speed (baud rate) = 9600
Word Length (bits per character) = 8
Parity = no (none)
Number of Stop Bits = 1
Interface = RS-232C (or RS-422A)
Line Control = IPRTS
按如下所示设置键盘和显示选项:
Screen = normal
Row and Column = 24x80
Scroll = jump
Auto LF (line feed) = off
Line Wrap = on
Forcing Insert = line (or both)
Tab = field
Operating Mode = echo
Turnaround Character = CR
Enter = return
Return = new line
New Line = CR
Send = page
Insert Character = space

注意:如果您的终端是 IBM 3151、3161 或者 3164,那么请按 Ctrl+Setup 键以显示设置菜单,并按照屏幕上的指示对这些字段进行设置。

如果您使用的是一些其他的 ASCII 终端,那么请参考合适的文档,以了解如何对这些字段进行设置。


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=289300
ArticleTitle=IBM p 系列管理员认证(Test 191)指南系列,第 2 部分
publish-date=02142008