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 命令创建的所有文件。 |
示例
- 当与所有三个标志和指定的 MailDirectory 变量一起使用时, bugfiler 命令的语法如下所示:
当放入 /etc/aliases 文件时,此行开始调试,将文件许可权设置为rwxr-xr-x,声明hadley作为BugUserName,并指定/home/hadley/bugdir目录。hadley:"|/usr/lib/bugfiler -d -m 755 -b hadley /home/hadley/bugdir" - 以下是错误报告的示例:
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 | 包含错误报告的再发布列表。 |