您所在的位置: 首页>>读书频道>>操作系统>>Linux>>

18.14.1 测试和调试

http://book.51cto.com  2008-04-22 13:05  [美]Evi Nemeth Garth Snyder Trent R.Hein  人民邮电出版社  我要评论(0)

18.14.1  测试和调试

基于m4的配置要经过某种程度上的预先测试。如果要用它们,可能并不需要进行底层的调试。有一样东西是调试标志不能测试的,那就是您的设计方案。在研究本章时,我们在所检查的好几个配置文件和设计中发现了错误。这些错误小到调用某项功能时没带上必要的宏(例如,使用masquerade_envelope时没有用MASQUERADE_AS打开伪装),大到sendmail配置和防火墙的设计之间发生全面冲突,而防火墙控制着是否允许邮件进入以及进入的条件有哪些。

您不能设计一个在真空中的邮件系统。邮件系统必须与DNS MX记录和防火墙策略同步(或者至少不会相冲突)。

sendmail提供了世界上已知最丰富的调试辅助程序集之一,它的调试标志不是简单的布尔值或整数,而是二维量x.y,其中x选定主题,而y选定要显示的信息量。值为0表示不调试,为127表示如果您打印输出的话,会造成纸张的浪费。主题的范围是0~99,目前定义了大约80个。
sendmail软件发布中的文件sendmail/TRACEFLAGS列出了正在使用的值和使用它们的文件和函数。所有对调试的支持都处在原始配置文件的层次上。在许多情况下,把调试输出和sendmail源代码一起看看是会有帮助的。

如果调用sendmail时带上一个-dx.y标志,调试输出将送到屏幕(标准错误输出)。表18.18显示了几个重要的x值和一些y的建议值。如果您打开了作为守护进程(-bd)运行的sendmail的调试功能,那么就要小心了,因为调试输出可能最终会卡住SMTP对话,在sendmail和远程主机进行通信时造成奇怪的故障。

表18.18 调试主题

   

含义和建议

0

显示编译标志和系统身份(请试试y = 1 或者 10

8

显示DNS名字解析(试试 y=8

续表

   

含义和建议

11

跟踪邮件的投递(显示邮寄程序的调用)

12

显示本地到远程的名字转换过程

17

列出MX主机

21

跟踪重写规则(要了解详情,可以使用 y=2或者y=12

27

显示别名和转发机制(试试 y= 4

44

显示如果发生故障,尝试打开文件的次数(y=4

60

显示数据库映射的查找

Gene Kim和Rob Kolstad写过一个叫checksendmail的Perl脚本,它用地址测试模式调用sendmail,在包含由您提供的测试地址的文件上运行。它将结果与期望值相比较。这个脚本让您能够根据站点上典型地址的测试集,对新版的配置文件进行测试,确保自己不会在无意间破坏以往一直工作正常的任何地方。

【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节
系统应用日志分析管理
Linux——从菜鸟到高手
测试开发人员参考手册
网络管理系统如何支撑ITSM
垃圾邮件新对策:远程定制托管服务
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有