在我当前的 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) 将附加到文件中。
如果您想最初截断文件(即不附加到预先存在的内容),请使用>
而不是>>
.