WEB开发网
开发学院操作系统Linux/Unix IBM AIX V5.3 系统管理(Test 222)认证指南系列,第... 阅读

IBM AIX V5.3 系统管理(Test 222)认证指南系列,第 4 部分:监视和性能优化(上)

 2008-11-10 08:29:03 来源:WEB开发网   
核心提示:监视文件系统增长在 AIX 5L 系统上,管理员需要监视文件系统增长以防止文件系统装满,IBM AIX V5.3 系统管理(Test 222)认证指南系列,第 4 部分:监视和性能优化(上),基于“Berkeley 磁盘配额系统”(Berkeley Disk Quota System) 的磁盘配

监视文件系统增长

在 AIX 5L 系统上,管理员需要监视文件系统增长以防止文件系统装满。

基于“Berkeley 磁盘配额系统”(Berkeley Disk Quota System) 的磁盘配额系统提供了一种控制磁盘空间使用的有效方法。可以为各个用户或组定义配额系统,并且每个日志文件系统都维护有配额系统。

磁盘配额系统基于下列参数建立限制,这些参数可使用 edquota 命令进行更改:

用户或组的软限制

用户或组的硬限制

配额过渡期

软限制定义用户一定不能超出的 1 KB 磁盘块或文件数量。硬限制定义用户在已建立的磁盘配额之下能够累积的最大磁盘块或文件数量。配额过渡期允许用户在短时间(缺省值为一周)内超过软限制。如果用户未能在指定的时间内将磁盘使用减少到软限制之下,系统将把该软限制解释为允许的最大分配量,并且不再为该用户分配更多的存储空间。通过删除足够的文件以将磁盘使用减少到软限制之下,用户可以改变这种状况。

磁盘配额系统在位于启用了配额的文件系统根目录中的 quota.user 和 quota.group 文件中跟踪用户和组配额。这些文件是使用 quotacheck 和 edquota 命令创建的,并且可以使用 quota 命令来读取。

从超出配额的条件中恢复

要在超出配额限制时减少文件系统使用,您可以使用下列方法:

终止导致文件系统达到其限制的当前进程,删除多余文件以使该限制低于配额,然后重试失败的程序。

如果您在运行诸如 vi 等编辑器,可以使用 Shell 转义序列检查文件空间,删除多余的文件,然后返回而不丢失编辑过的文件。或者,如果是在使用 C 或 Korn Shell,可以用 Ctrl-Z 键序列挂起编辑器,发出文件系统命令,然后用 fg(前台)命令返回。

临时将文件写到还未超过配额限制的文件系统,删除多余的文件,然后将该文件归还到正确的文件系统。

quotaon 命令启用由 File System 参数指定的一个或多个文件系统的磁盘配额。指定的文件系统必须在 /etc/filesystems 文件中使用 quotas 进行定义,并且必须装入(mounted)。quotaon 命令在关联文件系统的根目录中寻找缺省配额文件 quota.user 和 quota.group。可以在 /etc/filesystems 文件中更改这些文件名。

缺省情况下,此命令同时启用用户和组配额。-u 标志仅启用用户配额;-g 标志仅启用组配额。同时指定 –g 和 –u 等价于缺省选项。-a 标志指定要启用 /etc/filesystems 文件中指示的所有具有磁盘配额的文件系统。

quotaoff 命令禁用一个或多个文件系统的磁盘配额。缺省情况下,此命令同时禁用用户和组配额。-a、-g 和 -u 标志的操作与 quotaon 命令的对应标志一样。

-v 标志为分别使用 quotaon 和 quotaoff 命令来启用或禁用了配额的每个文件系统打印一条消息。只有 root 用户才能执行此命令。

表 1 提供了最常用的命令标志。

表 1 用于配额的常用标志

标志 描述
-a 启用或禁用 /etc/filesystems 文件中指示的所有具有读-写权限和磁盘配额的文件系统。当与 -g 标志一起使用时,将仅启用或禁用 /etc/filesystems 文件中指示的组配额;当与 -u 标志一起使用时,将仅启用或禁用 /etc/filesystems 文件中指示的用户配额。
-g 指定仅启用或禁用组配额。
-u 指定仅启用或禁用用户配额。
-v 为启用或禁用了配额的每个文件系统打印一条消息。

命令

通常,只有包含用户主目录和文件的文件系统才需要磁盘配额。在下列条件下应该考虑实现磁盘配额系统:

系统只有有限的磁盘空间。

您需要更多的文件系统安全性。

您的磁盘使用程度非常大,例如在许多部门。

如果这些情况不适用于您的环境,您可能不希望通过实现磁盘配额系统来创建磁盘使用限制。

磁盘配额系统只能用于日志文件系统。

注意:请不要为 /tmp 文件系统建立磁盘配额。

要建立磁盘配额系统,可以使用下面的过程:

1. 使用 root 权限登录。

2. 确定哪些文件系统需要配额。

注意:由于许多编辑器和系统实用程序在 /tmp 文件系统中创建临时文件,所以一定不要为其建立配额。

3. 使用 chfs 命令来在 /etc/filesystems 文件中添加的 userquota 和 groupquota 配额配置属性。下面的示例使用 chfs 命令启用 /home 文件系统上的用户配额:

# chfs -a "quota = userquota" /home

要同时启用 /home 文件系统上的用户和组配额,可以输入命令:

# chfs -a "quota = userquota,groupquota" /home
/etc/filesystems 文件中的对应条目将如下所示:
/home:
dev    = /dev/hd1
vfs    = jfs
log    = /dev/hd8
mount   = true
check   = true
quota   = userquota,groupquota
options  = rw

4. 可选地指定替代的磁盘配额文件名。quota.user 和 quota.group 文件名是位于启用了配额的文件系统根目录中的缺省名称。您可以为这些具有 /etc/filesystems 文件中的 userquota 和 groupquota 属性的配额文件指定替代的名称或目录。

下面的示例使用 chfs 命令为 /home 文件系统建立用户和组配额,并指定了 myquota.user 和 myquota.group 配额文件:

# chfs -a "userquota = /home/myquota.user"
-a "groupquota = /home/myquota.group" /home
/etc/filesystems 文件中的对应条目将如下所示:
/home:
dev    = /dev/hd1
vfs    = jfs
log    = /dev/hd8
mount   = true
check   = true
quota   = userquota,groupquota
userquota = /home/myquota.user
groupquota = /home/myquota.group
options  = rw

5. 如果指定的文件系统先前尚未装入,则将其装入。

6. 为每个用户或组设定所需的配额限制。使用 edquota 命令,创建每个用户或组的允许磁盘空间和最大文件数量的软和硬限制。

下面的示例条目显示了用户 gpsilva 的配额限制:

Quotas for user gpsilva:
/home:blocks in use:30, limits (soft = 100, hard = 150)
inodes in use:73, limits (soft = 200, hard = 250)

此用户已使用了最大 100 KB 的磁盘空间中的 30 KB。在最多 200 个文件中,gpsilva 已创建了 73 个文件。此用户拥有 50 KB 的磁盘空间缓冲区和 50 个可分配到临时存储的文件。

在为多个用户建立磁盘配额时,可以将 –p 标志与 edquota 命令结合使用,以将一个用户配额复制到另一个用户。

要为用户 tneiva 复制为用户 gpsilva 建立的配额,可以输入命令:

# edquota -p gpsilva tneiva

7. 使用 quotaon 命令启用配额系统。quotaon 命令启用指定文件系统的配额,或在使用了 –a 标志时,启用 /etc/filesystems 文件中指示的所有具有配额的文件系统的配额。

8. 使用 quotacheck 命令检查配额文件与实际磁盘使用的一致性。

注意:建议您每次在首次启用某个文件系统上的配额时和重新启动系统之后执行此检查。

要在系统启动期间启用此检查并打开配额,请在 /etc/rc 文件末尾添加下列行:

echo " Enabling filesystem quotas "
/usr/sbin/quotacheck -a
/usr/sbin/quotaon -a

还存在一些相关的命令,即 edquota 命令、quotacheck 命令和 repquota 命令。

下面的示例演示了这些命令的典型使用场合:

1. 要启用 /usr/Tivoli/tsm/server/db 文件系统的用户配额,可以输入命令:

# quotaon -u /usr/Tivoli/tsm/server/db

2. 要禁用 /etc/filesystems 文件中所有文件系统的用户和组配额并打印一条消息,可以输入命令:

# quotaoff -v -a

3. 要显示您作为用户 neivac 的配额,可以输入命令:

$ quota 
系统将显示下列信息:
User quotas for user neivac (uid 502):
Filesystem blocks quota limit grace Files quota limit grace
/u   20   55   60      20   60  65

4. 要显示用户 gpsilva 作为 root 用户的配额,可以输入命令:

quota -u gpsilva
系统将显示下列信息:
User quotas for user gpsilva (uid 2702):
Filesystem blocks quota limit grace files quota limit grace
/u   48   50   60      7   60  60

从装满的文件系统中恢复

当太多的文件装满分配的空间时,就产生了装满的文件系统。这可能是由创建许多不必要文件的失控进程导致的。您可以使用下面的过程解决此问题。

修复装满的 /(根)文件系统

当根文件系统 (/) 已装满时,请检查以下事项:

使用 who 命令读取 /etc/security/failedlogin 文件的内容:

# who /etc/security/failedlogin

TTY 重新产生得太快的情况会创建失败的登录条目。要在读取或保存输出之后清空该文件,可以执行以下命令:

# cp /dev/null /etc/security/failedlogin

检查 /dev 目录中输入不正确的设备名称。如果设备名称输入不正确,例如将 rmt0 误输入为 rmto,则会在 /dev 中创建一个名为 rmto 的文件。此命令会正常继续运行,直到装满整个根文件系统,然后失败。/dev 是根 (/) 文件系统的一部分。查找不属于设备的条目(没有主要编号或次要编号)。要检查此情况,可以使用以下命令:

# cd /dev
# ls -l | pg
total 40
drwxrwx---  2 root   system     4096 Nov 29 14:19 .SRC-unix   
crw-rw----  1 root   system    10, 0 Nov 10 17:18:00 IPL_rootvg
srwxrwxrwx  1 root   system      0 Nov 28 17:30 SRC      
crw-------  1 root   system    22, 1 Nov 23 12:14 __pv22.1.323758
crw-------  1 root   system    22, 1 Nov 23 12:14 __pv22.1.381014
crw-------  1 root   system    22, 1 Nov 23 12:15 __pv22.1.397388
.
.
.
(省略的行)
.
.
.
crw-rw-rwT  1 root   system    17, 0 Nov 10 16:22 usb0   
crw-rw-rw-  1 root   system    15, 0 Nov 10 16:22 usbhc0  
crw-rw-rw-  1 root   system    15, 1 Nov 10 16:22 usbhc1  
crw-------  1 root   system    11, 0 Nov 10 16:22 vio0   
crw-rw-rw-  1 root   system    21, 0 Nov 10 16:22 vty0   
crw-rw-rw-  1 root   system    21, 1 Nov 10 16:22 vty1   
drwxr-xr-x  2 root   system     256 Nov 10 17:18 xti   
crw-rw-rw-  1 root   system    2, 3 Nov 10 17:18 zero   
#

在原本指示普通文件的文件大小的相同位置,设备文件有两个逗号分隔的编号。例如:

crw-rw-rw- 1 root system 24, 0 Nov 10 16:22 rmt0

如果显示文件名或大小的位置指示某个无效设备,如下面的示例所示,则删除关联的文件:

crw-rw-rw- 1 root system 9375473 Oct 25 10:19 rmto

注意:

1. 请不要删除 /dev 目录中的有效设备名称。无效设备的特点之一是一个大于 500 字节的关联文件大小。

2. 如果正在运行系统审核,则缺省的 /audit 目录会快速装满,并需要引起注意。

可以使用 find 命令来检查可删除的超大型文件。例如,要查找根 (/) 目录中大于 1 MB 的所有文件,可以使用以下命令:

# find / -xdev -size +1024 -ls |sort -r +6

此命令查找所有大于 1 MB 的文件,并对它们进行从最大到最小的逆向排序。find 命令的其他标志,如 –newer,可能在此搜索中非常有用。有关详细信息,请参见 find 命令的命令描述。

注意:在检查根目录时, /dev 目录中设备的主要和次要编号将夹杂实际的文件和文件大小。可以忽略逗号分隔的主要和次要编号。

在删除任何文件之前,可以使用 fuser 命令确保当前没有任何用户进程正在使用该文件:

fuser filename

其中,filename 是可疑大型文件的名称。如果文件在删除时已打开,则只会将其从目录清单中删除。在拥有打开的文件的进程终止之前,分配给该文件的块不会释放。

修复装满的 /var 文件系统

当 /var 文件系统装满时,请检查以下事项:

可以使用 find 命令查找 /var 目录中的大型文件。例如:

# find /var -xdev -size +2048 -ls| sort -r +6

有关详细信息,请参见 find 命令的命令描述。

检查 /var/tmp 中过时或残余的文件。

检查 /var/adm/wtmp 文件的大小,该文件记录所有 login、rlogin 和 telnet 会话日志。除非记帐系统 (system accounting) 正在运行,否则该日志将无限增长。记帐系统在每晚清空该日志。可以清空或编辑 /var/adm/wtmp 文件,以删除旧的或不需要的信息。要清空该文件,可以使用下面的命令:

# cp /dev/null /var/adm/wtmp
#
要编辑 /var/adm/wtmp 文件,请首先使用下面的命令临时复制该文件:
# /usr/sbin/acct/fwtmp < /var/adm/wtmp >/tmp/out
#
编辑 /tmp/out 文件以删除不需要的条目,然后使用以下命令替换原始文件:
# /usr/sbin/acct/fwtmp -ic < /tmp/out > /var/adm/wtmp

使用下面的过程清空 /var/adm/ras 目录中的错误日志。除非手动清空,否则错误日志永远不会清空。

注意:切勿使用 cp /dev/null 命令来清空错误日志。零长度的 errlog 文件将禁用操作系统的错误日志记录功能,必须从备份中将其替换。

使用以下命令终止 error 守护进程:

# /usr/lib/errstop

b. 使用以下命令之一删除错误日志文件或将其移动到其他文件系统:

# rm /var/adm/ras/errlog
或者
# mv /var/adm/ras/errlog filename

其中 filename 是被移动的 errlog 文件的名称。

注意:如果删除错误日志文件,则会删除历史错误数据。

c. 使用以下命令重新启动 error 守护进程:

# /usr/lib/errdemon

#

注意:可以考虑在 cron 中运行以下条目以限制 errorlog :

0 11 * * * /usr/bin/errclear -d S,O 30

0 12 * * * /usr/bin/errclear -d H 90

检查此目录中的 trcfile 文件是否非常大。如果该文件非常大,并且当前没有运行跟踪,可以使用以下命令删除该文件:

# rm /var/adm/ras/trcfile

如果将转储设备设置为 hd6(缺省转储设备),/var/adm/ras 目录中可能存在许多 vmcore* 文件。如果这些文件的文件日期很旧或者您不希望保留它们,可以使用 rm 命令将其删除。

检查 /var/spool 目录,其中包含队列子系统文件。可以使用以下命令清空队列子系统:

# stopsrc -s qdaemon                          
0513-044 The qdaemon Subsystem was requested to stop.          
# rm /var/spool/lpd/qdir/*                       
# rm /var/spool/lpd/stat/*                       
# rm /var/spool/qdaemon/*                        
# startsrc -s qdaemon                          
0513-059 The qdaemon Subsystem has been started.Subsystem PID is 291042.
#

检查 /var/adm/acct 目录,其中包含记帐记录。如果记帐系统正在运行,此目录可能包含多个大型文件。

检查 /var/preserve 目录中的已终止 vi 会话。一般情况下,可以安全地删除这些文件。如果用户希望恢复某个会话,可以使用 vi –r 命令列出所有可恢复的会话。要删除某个特定会话,可以使用命令 vi –r filename。

修改 /var/adm/sulog 文件,其中记录了尝试使用 su 命令的次数,以及每次尝试是否成功。这是一个平面文件,可使用自己喜欢的编辑器进行查看和修改。如果删除该文件,则会在下次尝试使用 su 命令时重新创建它。

修改 /var/tmp/snmpd.log,其中记录了来自 snmpd 守护进程的事件。如果删除该文件,snmpd 守护进程将重新创建它。

注意:可以限制 /var/tmp/snmpd.log 文件的大小,以使其不会无限增长。可编辑 /etc/snmpd.conf 文件,以更改针对大小的适当部分中的数字(以字节为单位)。

修复装满的用户定义的文件系统

使用以下过程修复装满的用户定义的文件系统。

删除旧的备份文件和核心文件。下面的命令删除所有 *.bak、.*.bak、a.out、core、* 或 ed.hup 文件:

find / ( -name "*.bak" -o -name core -o -name a.out -o
-name "...*" -o -name ".*.bak" -o -name ed.hup )
-atime +1 -mtime +1 -type f -print | xargs -e rm -f

要定期防止文件装满磁盘,可以作为 cron 进程的一部分运行 skulker 命令,并删除不必要的文件或临时文件。

skulker 命令清除 /tmp 目录中的文件、指定日期以前的文件、a.out 文件、核心文件和 ed.hup 文件。它作为记帐过程的一部分由 cron 命令在每天的非高峰时间段中运行(假设打开了记帐系统)。

cron 守护进程在指定的日期和时间运行 Shell 命令。可以按照 crontab 文件中包含的说明指定诸如 skulker 等定期计划的命令。使用 crontab 命令提交 crontab 文件。要编辑系统或根 crontab 文件,您必须拥有 root 用户权限。用户可以编辑他们自己的 crontab 文件。

修复其他文件系统和一般搜索技术

带 –size 标志使用 find 命令来定位大型文件,或者如果文件系统是最近装满的,可以使用 -newer 标志查找最近修改过的文件。要产生一个供 -newer 标志在查找时用作参照的文件,可使用以下 touch 命令:

touch mmddhhmm filename

其中 mm 是月份,dd 是日期,hh 是 24 小时格式的小时,mm 是分钟,filename 是要用 touch 命令创建的文件的名称。

在创建参照文件之后,可以使用以下命令查找较新的大型文件:

find /filesystem_name -xdev -newer touch_filename -ls

还可以使用 find 命令来定位在最近 24 小时内更改过的文件,如下面的示例所示:

find /filesystem_name -xdev -mtime 0 -ls

修复损坏的文件系统

当文件系统目录结构的索引节 (i-node) 或超级块 (superblock) 信息受到破坏时,文件系统就会受到破坏。这可能是由硬件相关的问题或由直接访问索引节或超结块信息的程序受到破坏而导致的。(以汇编语言和 C 编写的程序可以绕过操作系统并直接向硬件执行写入。)受到破坏的文件系统的症状之一是系统无法对位于特定文件系统中的数据进行定位、读取或写入。

要修复损坏的文件系统,您必须诊断问题然后修复问题。fsck 命令执行底层诊断和修复。

1. 使用 root 权限,通过下列 SMIT 快速路经之一卸载损坏的文件系统:smit unmountfs(用于固定硬盘驱动器上的文件系统)或 smit unmntdsk(用于移动磁盘上的文件系统)。

2. 通过运行 fsck 命令访问损坏的文件系统。在下面的示例中,fsck 命令检查位于 /dev/myfilelv 设备上的已卸载文件系统:

# fsck /dev/myfilelv

fsck 命令检查并交互式地修复不一致的文件系统。正常情况下,文件系统是一致的,fsck 命令只是报告文件系统中的文件、已使用的块和空闲块的数量。如果文件系统不一致,fsck 命令将显示有关已发现的不一致性的信息,并提示您准许修复它们。fsck 命令在修复工作方面很谨慎,并尽量避免可能导致有效数据丢失的操作。但是在某些情况下,fsck 命令会建议销毁某个已损坏的文件。

3. 如果无法修复文件系统,则从备份中恢复。

系统错误日志

AIX 5L 提供了一个错误日志记录功能,用于在错误日志中记录硬件和软件故障。此错误日志可用于参考目的,或者用于故障检测和纠正操作。

错误日志记录过程在操作系统模块检测到某个错误时开始。然后错误检测代码段将错误信息发送给 errsave 和 errlast 内核服务或 errlog 应用程序子例程,然后又在那里将错误信息写到 /dev/error 特殊文件。然后此过程将向收集的数据添加一个时间戳。可以使用 errtp 命令从错误日志中检索某个错误记录。

启动和停止错误日志记录

错误日志记录在系统初始化期间由 rc.boot 脚本自动启动,并在系统关闭期间由关闭脚本自动停止。

errdemon 程序启动错误日志记录守护进程,从 /dev/error 文件读取错误记录,并将条目写到系统错误日志。缺省的系统错误日志保存在 /var/adm/ras/errlog 文件中。最后一个错误条目放在非易失性随机访问存储器 (NVRAM) 中。在系统启动期间,将从 NVRAM 中读取此最后一个错误条目,并在启动错误日志记录守护进程时将此条目添加到错误日志。

errdemon 程序

errdemon 程序通常在系统启动期间自动启动,但是如果由于任何原因而将其终止并且需要重新启动它,您可以输入以下命令:

# /usr/lib/errdemon

errstop 命令

errstop 命令终止由 errdemon 程序启动的错误日志记录守护进程:

# /usr/lib/errstop

#

注意:运行 errstop 命令将禁用诊断和恢复功能。切勿在正常操作期间停止错误日志。如果停止错误日志记录守护进程,则会在将临时存储在内部缓冲区中的错误数据记录到错误日志文件之前,导致将该数据覆盖。只有在绝对必需并且清楚了解其后果的特殊情况下,才应该使用 errstop 命令。

错误日志文件

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

# /usr/lib/errdemon -l            
Error Log Attributes             
-------------------------------------------- 
Log File        /var/adm/ras/errlog  
Log Size        1048576 bytes     
Memory Buffer Size   32768 bytes      
Duplicate Removal    true         
Duplicate Interval   10000 milliseconds  
Duplicate Error Maximum 1000         
#
To change the maximum size of the error log file, enter:
# /usr/lib/errdemon -s 2000000
#

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

# /usr/lib/errdemon -B 64000
0315-175 The error log memory buffer size you supplied will be rounded upto
a multiple of 4096 bytes.
#

errpt 命令

要检索错误日志中的条目,可以使用 errpt 命令。errpt 命令使用错误日志中的条目生成错误报告。它包括相关的标志,用于选择与特定条件匹配的错误记录。通过使用缺省条件,您可以按照与发生和记录错误相反的顺序显示错误日志条目。

表 2 显示了用于 errpt 命令的部分最常用标志。

表 2 errpt 命令的常用标志

标志 描述
-a 以详细格式显示有关错误日志文件中的错误的信息。如果与 –t 标志结合使用,则会显示模板文件中的所有信息。
-j ErrorID[,ErrorID] 仅包括由 ErrorID(错误标识符)变量指定的错误日志条目。ErrorID 变量可由逗号 (,) 分隔,或包括在双引号 ("") 中并由逗号 (,) 或空格字符分隔。当与 –t 标志结合使用,将处理错误模板存储库中的条目。
-s StartDate 指定在 StartDate 变量之后记入的所有记录,其中 StartDate 变量的形式为 mmddhhmmyy(月份、日期、小时、分钟和年份)。
-e EndDate 指定在 EndDate 变量之前(并包括 EndDate)记入的所有记录,其中 EndDate 变量的形式为 mmddhhmmyy(月份、日期、小时、分钟和年份)。

下面的示例演示了 errpt 命令的部分用法:

要显示已记录的所有错误的完整摘要报告,可以运行以下命令:

# errpt

IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION            
26120107  1128173005 U S LIBLVM     PHYSICAL VOLUME DEFINED AS MISSING
EC0BCCD4  1128173005 T H ent0      ETHERNET DOWN           
67145A39  1128173005 U S SYSDUMP    SYSTEM DUMP            
F48137AC  1128173005 U O minidump    COMPRESSED MINIMAL DUMP      
9DBCFDEE  1128173005 T O errdemon    ERROR LOGGING TURNED ON      
EA88F829  1128134005 I O SYSJ2     USER DATA I/O ERROR        
A39F8A49  1128134005 T S syserrlg    ERROR LOGGING BUFFER OVERFLOW   
8527F6F4  1128134005 P S SYSVMM     NO PAGING SPACE AVAILABLE     
#

要显示具有特定错误 ID 的所有错误,可以运行以下命令:

# errpt -j 8527F6F4
IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION         
8527F6F4  1128134005 P S SYSVMM     NO PAGING SPACE AVAILABLE     
#

要显示特定时间段内记录的所有错误,可以运行以下命令:

# errpt -s 1122164405 -e 1123100405                 
IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION         
2BFA76F6  1123092705 T S SYSPROC    SYSTEM SHUTDOWN BY USER  
A6DF45AA  1122183705 I O RMCdaemon   The daemon is started.   
9DBCFDEE  1122164405 T O errdemon    ERROR LOGGING TURNED ON  
#

errclear 命令

errclear 命令删除错误日志中的条目。例如:

要删除错误日志中的所有条目,可以输入以下命令:

# errclear 0
#

要删除错误日志中分类为软件错误的所有条目,可以输入以下命令:

# errclear -d S 0
#

errlogger 命令

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

下面的示例演示了 errlogger 命令的用法及其输出:

# errlogger "This is a test of the errlogger command"
# errpt
IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION         
AA8AB241  1129134705 T O OPERATOR    OPERATOR NOTIFICATION      
F89FB899  1128150005 P O dumpcheck   The copy directory is too small. 
A6DF45AA  1127123605 I O RMCdaemon   The daemon is started.      
9DBCFDEE  1127123605 T O errdemon    ERROR LOGGING TURNED ON  
A6DF45AA  1127121105 I O RMCdaemon   The daemon is started.
#

要显示前一示例中生成的操作员通知(id 为 AA8AB241),可以输入以下命令:

# errpt -a -j AA8AB241          
-------------------------------------------
LABEL:OPMSG           
IDENTIFIER:AA8AB241         
                     
Date/Time:Tue Nov 29 13:47:43 CST 2005
Sequence Number: 24            
Machine Id:00C478DE4C00       
Node Id:server2         
Class:O            
Type:TEMP           
Resource Name:OPERATOR         
                     
Description                
OPERATOR NOTIFICATION           
                     
User Causes                
User Causes                
ERRLOGGER COMMAND             
                     
Recommended Actions        
REVIEW DETAILED DATA       
                     
Detail Data                
MESSAGE FROM ERRLOGGER COMMAND      
This is a test of the errlogger command  
#

从系统转储中提取错误记录

errdead 命令从系统转储中提取错误记录,其中系统转储包含由 /dev/error 文件维护的内部缓冲区。errdead 命令从转储文件中提取错误记录,并将那些错误记录直接添加到错误日志。

注意:在运行 errdead 命令时,一定不能运行错误日志守护进程。

例如,要从驻留在 /dev/hd7 文件中的转储映像中捕获错误日志信息,可以输入以下命令:

# /usr/lib/errdead /dev/hd7

如果在发生转储时 errdemon 守护进程没有运行,则错误日志记录信息将在转储映像中。

将 syslog 消息重定向到错误日志

有些应用程序使用 syslog 来记录错误和其他事件。要在单个报告中列出错误日志消息和 syslog 消息,可以将 syslog 消息重定向到错误日志。这可以通过在 /etc/syslog.conf 配置文件中将 errlog 指定为目标来实现。

用于操作错误消息的其他命令

还存在其他一些错误命令,这些命令不是用于确定系统上的错误,而是用于创建自定义的错误消息,并将它们安置在系统的错误日志消息目录上:

errinstall 将消息安置在错误日志记录消息集中。

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

errmsg 将消息添加到错误日志消息目录。

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

ras_logger 提供一种从命令行记录任何错误的方法。可将其用于测试新创建的错误模板,并提供一种从 Shell 脚本中记录错误的方法。

Tags:IBM AIX

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接