bugfiler 命令

用途

将错误报告自动存储在指定的邮件目录中。

语法

bugfiler[-d ] [-m MessageMode] [-b BugUserName] [MailDirectory

描述

bugfiler 命令自动拦截错误报告,对它们进行总结,并将它们存储在由 MailDirectory 变量指定目录中正确的文件夹中。

邮件传递程序通过 /etc/aliases 文件中的行启动 bugfiler 命令。 该行具有以下格式:

bugs:"|/usr/lib/bugfiler $HOME/bugstuff"

在该示例中,错误报告放在 $HOME/bugstuff 目录中。 如果未指定目录,bugfiler 命令会将错误报告放在 $HOME/mail 缺省目录中。

注: 必须为 bugfiler 命令创建 $HOME/mail 目录以用作缺省目录。

如果BugUserName不是bugs因此,/etc/aliases文件中的条目应包含一个-b BugUserName标志,如下例所示:

hadley:"|/usr/lib/bugfiler -b hadley"

在此示例中,hadley被声明为BugUserName,所有 Bug 报告都被放置在/home/hadley/mail默认目录下。 bugfiler 命令使用的所有目录都必须由hadley.

bugfiler命令从标准输入端读取错误报告,检查每份报告的格式,然后发送确认收到的信息($HOME/MailDirectory/.ack文件)或指出格式不当($HOME/MailDirectory/.format文件)。

格式不正确的错误报告被归档在 errors 目录中,此目录由 bugfiler 命令创建作为 MailDirectory 变量的子目录。 错误报告的格式必须是在 /usr/lib/bugformat 文件中找得到的。 使用 sendbug 命令启动 /usr/lib/bugformat 文件。 bugfiler 命令汇总有效的错误报告并将它们归档在 中指定的文件夹中Index:报告的 行。 源目录名称Index:行必须与邮件目录中的某个目录名匹配。 bugfiler 命令将以下格式的行附加至 MailDirectory/summary 文件:

DirectoryName/MessageNumber IndexInformation SubjectInformation

注: bugfiler 命令无法识别转发的邮件。 它通知转发器,而不是发送方,除非Reply-To: 行包含在报告的标题中。

错误报告的格式

错误报告必须以 ARPA RFC 822 格式提交。 sendbug 命令包含以正确格式组成并邮寄错误报告的信息。

报告要求具有以下报头行以用于正确索引:

描述
Date: 在此之后是 bugfiler 命令接收报告的日期。
From: 在此之后是发送者的有效返回地址。
Subject: 在此之后是问题的简短摘要。
Index: 在此之后是源目录和源文件的路径、版本号和(可选地)Fix 关键字。

错误报告的正文要求有以下行:

描述
Description: 后跟问题,建议或投诉的详细描述.
Repeat-By: 在此之后是重复该问题的过程。
Fix: 在此之后是比较新旧源文件的 diff 命令或如何解决问题的描述。 包含Fix:仅当在 Fix 关键字中指定了Index:行。

错误报告的再发布

可以依据 MailDirectory/ .redist 文件中的索引信息对错误报告进行再发布。 检查 MailDirectory/ .redist 文件中以跟有跳格的索引名开头的行。 索引名和跳格后,是由逗号分隔的接收错误报告副本的邮件地址列表。 如果该列表在多行中继续,除了最后一行的每行必须以 \ (反斜杠) 结束。 以下内容是 .redist 文件中的索引信息示例:

myindex   joe@hal,mary@mercutio,martha@banquo,sarah@mephisto,\
dee@hamlet,dewayne@ceasar

标志

描述
-b BugUserName 指定新的用户标识。 如果未指定 -b BugUserName 标志,bugfiler 命令缺省为登录名。
-d 将调试设置为开。 指定了 -d 标志时,bugfiler 命令将错误消息发送至标准输出。
-m MessageMode 设置消息保护。 -m MessageMode 标志使用十六进制格式指定文件许可,用于 bugfiler 命令创建的所有文件。

示例

  1. 当与所有三个标志和指定的 MailDirectory 变量一起使用时, bugfiler 命令的语法如下所示:
    hadley:"|/usr/lib/bugfiler -d -m 755 -b hadley 
    /home/hadley/bugdir"
    当放入 /etc/aliases 文件时,此行开始调试,将文件许可权设置为rwxr-xr-x,声明hadley作为BugUserName,并指定/home/hadley/bugdir目录。
  2. 以下是错误报告的示例:
    Date: Mon, 27 Nov 89 11:26:15 -600
    From: a@B
    Subject: Read not setting errno correctly
    Index: LFS/rdwr.c workstation 3.1
     
    Description: Read not setting errno correctly
     
    Repeat-By: Start an NFS daemon and it receives errors. Errno is
    zero.

文件

描述
/etc/ 别名 包含邮件传输系统用于整个系统的别名。
usr/sbin/sendmail 包含邮件交付程序。
邮件目录/摘要 包含错误报告摘要。
错误用户名/邮件目录/.ack 包含声明中发送的消息。
错误用户名/邮件目录/.格式 包含当检测到格式错误时发送的消息。
MailDirectory/.redist 包含错误报告的再发布列表。