我的/var/log/mail.log不断充斥着Dovecot连接/断开信息,如下所示:
Mar 29 18:15:48 summit dovecot: IMAP([email protected]): Disconnected: Logged out bytes=63/2126 Mar 29 18:15:50 summit dovecot: imap-login: Login: user=<[email protected]>, method=PLAIN, rip=4.3.2.1, lip=1.2.3.4, TLS
这些重复无休止的(每天11MB的日志),他们模糊了更重要的authentication失败和Postfix交付/接收。 我已经检查了Dovecot的wiki页面进行日志logging ,但没有选项可以阻止这些消息。 是否有任何configurationvariables,我可以在dovecot.conf设置停止这些邮件发送到mail.log ?
澄清:我仍然希望Dovecotlogin到mail.log ; 我只是不希望它logging这些无聊的连接/断开信息。
如果您使用rsyslog或syslog-ng,则可以过滤系统日志消息。 这里是一个来自rsyslog帮助的例子:
用一个简单的说法:
:msg, contains, "imap-login" ~
或者使用if-else脚本语言:
if $programname == 'dovecot' then { action(type="omfile" file="/var/log/dovecot.log") if $msg contains 'imap-login' then action(type="omfile" file="/var/log/dovecot-login.log") else action(type="omfile" file="/var/log/dovecot.log") }
启用将日志logging到具有log_path和/或info_log_path的文件,然后注释掉syslog_facility。
要么
更改syslog_facility并使用/etc/syslog.conf控制输出。
:/etc/dovecot.conf
## ##logging ## #日志文件用于错误消息,而不是将它们发送到syslog。 #/ dev / stderr可以用来loginstderr。 #log_path = /var/log/dovecot.log #日志文件用于信息和debugging消息。 #默认与log_path相同。 #info_log_path = /var/log/dovecot-info.log ... #如果您正在loginsyslog,则使用Syslog工具。 通常如果你不这样做 #想要使用“邮件”,你将使用local0..local7。 也是其他标准 #设施被支持。 syslog_facility = mail
我可以摆脱dovecot的login/注销消息的最简单的方法是在/etc/rsyslog.d下创build文件49-dovecot-ignore-info.conf:
mail.=info ~
这基本上意味着放弃所有来自邮件设施(dovecot使用)的信息消息。 更多信息: http : //manpages.ubuntu.com/manpages/hardy/man5/rsyslog.conf.5.html , 放弃部分。
然后做一个
sudo service dovecot restart
这些消息不会长时间存储在日志文件中。
如何每小时cron工作,以删除sed像这样的行:
sed -e '/\(dovecot: IMAP.*Disconnected:.*\|dovecot: imap-login: Login: user\)/d' /var/log/mail.log > /var/log/mail.log
我不是主人或正则expression式或sed,所以如果你想使用它,请耐心等待。
首先从dovecot中删除系统日志如果dovecot产生大量日志,分开logging(rsyslog)是让你的日志旋转的朋友,
如果你使用dovecot和多文件configuration(debian),只需要进入10-logging ….不要忘记在所有的configuration文件中使用grep log * .conf来检查,以确保没有任何东西被写入两次或更多次。 那么因为你的处理器和你的硬盘是很珍贵的。
有一天,如果你需要有信息只是评论这一行,并logging在别的地方。
info_log_path = / dev / null