修改AIX打印队列错误通知

修改AIX打印队列错误通知

AIX 打印队列的默认行为似乎是向提交打印作业的用户报告队列错误。我们有数百个队列,由无人值守脚本和 cron 作业使用,这些脚本和 cron 作业在不打算接收邮件的系统帐户下运行。

我想做的(但尝试失败的)是阻止这些错误报告被定向到提交作业的用户,而是将它们定向到另一个地址。这是我尝试过的,没有效果:

chque -q'queue_name' -a"recovery_type = sendmail "'[email protected]'

这将预期的配置添加到/etc/qconfig。我重新启动了 lpd,但错误消息仍然发送给用户。此外,错误消息不会传递到[电子邮件受保护]

这是在 AIX 5.3 上。我想重定向的典型错误:

Message from queueing system:
Queue hs-3841:@print went down, job is still queued:
  Backend: /usr/lib/lpd/rembak -S print.example.com -P hs-3841 -N \
           /usr/lib/lpd/aixshort /var/spool/lpd/dfA731sub.sub.example.com.1280424810.1028194 
  Backend Exit Value: EXITFATAL (0100)
  Job Submit Time: Mar 21 03:33:30 2011,  Current Time: Mar 21 12:00:51 2011
Use local problem reporting procedures.

我知道我可以调整 rembak 来尝试避免由于间歇性远程队列停机而导致的错误,但是如何配置 lpd 以将队列错误定向到用户以外的地址?

答案1

由于这已经在那里呆了几天了,在那段时间我(大部分)已经解决了问题,我将发布对我有用的答案。

简单来说:

chvirprnt -qQUEUENAME -dDEVICENAME -a"si=USERNAME"

其中 QUEUNAME、DEVICENAME 和 USERNAME 设置为您希望向其发送错误的队列、设备和用户。

在全:

AIX 打印队列具有与每个队列关联的虚拟打印机和打印设备。问题中给出的命令chque用于管理队列的属性。将“recovery_type”设置为“sendmail”[电子邮件受保护]" 将导致在队列关闭时将通知发送到指定的地址,但不会阻止将所有打印机错误分派给提交打印作业的用户。

默认情况下,虚拟打印机错误消息将通过 writesrv 守护程序发送给作业提交者。如果用户已登录,Writesrv 将向用户控制台发出消息。如果发生错误时用户尚未登录,或者远程主机上的 writesrv 守护程序(如果适用)未侦听,则会发送一封电子邮件发送至发送作业的主机上的用户。

为了完全回答这个问题,你必须si通过带有接收错误的用户名的命令在虚拟打印机冒号文件中设置参数chvirprnt,并安排本地MTA将该用户的邮件转发到[电子邮件受保护]。建议为此目的创建一个用户,或者将错误发送到根用户并进一步优化根用户的邮件传递,以根据需要路由错误消息。

相关内容