“清理:致命:未找到优先级‘LOG_IF00’,退出”是什么意思以及如何解决这个问题?

“清理:致命:未找到优先级‘LOG_IF00’,退出”是什么意思以及如何解决这个问题?

“清理:致命:未找到优先级‘LOG_IF00’,正在退出” - 这样的消息(通常成倍出现 - 每次两次)不时在我的 Debian 控制台中弹出。这是什么意思?我该如何修复它?谷歌表示这与 postfix-policyd 和 syslog 相关。

重现步骤:

  1. 安装 Debian 5.0.5。
  2. 使用 OpenLDAP 安装并配置 iRedMail 0.6.0。
  3. 将不稳定和实验性的存储库添加到 apt 源列表中。
  4. 升级并进行 dist-upgrade 直到没有更多需要升级的内容。
  5. 修复dovecot配置中的错误(新版本中一些参数有所改变)。
  6. 然后一切都运行,但实际上不起作用,并且上述消息不时弹出。

答案1

查看 postfix-policyd 配置中的 log_mail 变量。是否类似以下内容?

log_mail=ifoo@syslog...

如果我的猜测是正确的,只需将“ifoo”更改为“info”就可以了。

答案2

我猜想您的 postfix 灰名单 perl 脚本中存在语法错误。请确保该脚本中的 syslog 行如下所示:

syslog $syslog_priority, "请求年龄 %d", $now - $time_stamp if $verbose;

您应该能够从 /etc/postfix/master.cf 文件中的条目找到每个脚本的灰名单。

答案3

这句话似乎来自旧版本的 policyd

logmessage(“致命:未找到优先级‘%s’,退出\n”,token);

IFOO 不匹配任何已知的日志级别,因此它终止;它可能意味着 INFO。我的建议是安装ack-grep并查找/etc包含 IFOO 的配置文件。然后您可以确定它是直接来自 Debian、直接来自 iRedMail,还是在脚本中混杂。鉴于 iRedMail 安装程序的糟糕状态,我可能会先在那里查看。

找到该文件后,将其更改为 INFO 就可以了。

答案4

仅供参考,这是两个文件中的间距错误,而不仅仅是一个文件(正如互联网上的其他线程所识别的那样,取决于您的构建):

在两个文件中:

/etc/postfix-policyd.conf
/etc/postfix-policyd_sender_throttle.conf

编辑此行:

SYSLOG_FACILITY="LOG_MAIL | LOG_INFO"

删除空格,因此内容为:

SYSLOG_FACILITY="LOG_MAIL|LOG_INFO"

在两个文件中。然后,重新启动服务:

/etc/init.d/postfix restart
/etc/init.d/postfix-policyd restart

然后你可以通过运行来测试:

/usr/lib/postfix-policyd/cleanup -c /etc/postfix-policyd.conf

并且它不再应该给出错误

"cleanup: fatal: didn't find priority 'LOG_IFOO', exiting"

希望这可以帮助!

另外,当我运行 Debian 5.0“Lenny”时,这个问题影响了我的 Amazon EC2 实例,在我将其升级到 Debian 6.0.6“Squeeze”后,这个问题开始出现。它似乎没有给我的功能带来任何麻烦,它只是在日志文件中运行,每隔约 10 分钟出现在控制台中。

相关内容