如何从修补程序过滤器调试/记录



我有一个相对简单的shell脚本,我插入它作为后缀的过滤器。Postfix认为它运行良好,正如日志文件所说:

postfix/pipe[2026]: 3E2278004C: to=<me@example.com>, relay=dfilt, delay=0.12, delays=0.08/0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dfilt service)

事实上,我收到了电子邮件。但是,过滤器。。。似乎并没有真正做我想让它做的事情。最终,这可能是一个sh/bash问题,但是,我如何从过滤器的某个地方获得输出?

例如,如果过滤器启动

#!/bin/sh
INSPECT_DIR=/var/spool/filter
SENDMAIL=/usr/sbin/sendmail
DISCLAIMER_ADDRESSES=/etc/postfix/disclaimer_addresses
# Exit codes from <sysexits.h>
EX_TEMPFAIL=75
EX_UNAVAILABLE=69
# Clean up when done or when aborting.
# trap "rm -f in.$$" 0 1 2 3 15
# Start processing.
cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit
$EX_TEMPFAIL; }
cat >in.$$ || { echo Cannot save mail to file; exit $EX_TEMPFAIL; }
# obtain From address
from_address=`grep -m 1 "From:" in.$$ | cut -d "<" -f 2 | cut -d ">" -f 1`
...

我如何记录它放入from_address的内容?

好。原来这很简单。Postfix实际上记录了该命令的输出,因此您可以在过滤器脚本中只记录echo,或者您喜欢的任何调试输出。

最新更新