如何将输出记录到邮件日志?

如何将输出记录到邮件日志?

在我当前的 Debian 设置中,我有一个文件 /var/log/mail.log,Dovecot、Postfix 和 Spamassassin 的 spamd 所有消息都输出到该文件中。我知道该logger命令可以输出到 syslog,但是是否有一些命令可以轻松地让我从 bash 脚本输出到邮件日志,或者我是否必须手动打开它并附加到它?

答案1

原来我正在记录的东西logger无论如何都被注销到我的/var/log/mail.log文件中。我认为这是因为(无论如何在 Debian 上)默认日志配置/etc/rsyslog.conf将邮件“设施”的默认日志定义为 mail.log 文件,而我的脚本确实记录到了邮件“设施”。这似乎使logger日志同时记录到 mail.log 和 syslog。

答案2

在 bash 上下文中“手动打开并追加”非常简单:

mycommand >> /var/log/mail.log

标准输出从mycommand转到文件。如果将其放在脚本的开头:

exec 1>&2&>> /var/log/mail.log

脚本其余部分中所有内容的标准输出 (1) 和错误 (2) 将附加到文件中。

如果您想最初截断文件(即不附加到预先存在的内容),请使用>而不是>>.

相关内容