有人能帮我写一个命令来跟踪 exim 中登录次数最多的吗?此外,如何获取邮件 exim 中经过身份验证的 smtp 登录次数最多?
答案1
你并没有真正提供太多细节,所以这里有一个完全按照你要求做的一行代码(不多也不少):
perl -e '
while(<>){if(/ A=(?:login|plain):(\S+) /){$found->{$1}++;}}
@sorted=(sort {$found->{$a} <=> $found->{$b}} keys %$found);
printf "%s: %d\n", $sorted[-1], $found->{$sorted[-1]}."\n";
' < /var/log/exim/main.log
这是一行很长的代码,我只是为了方便阅读而把它分开(并且防止代码块出现巨大的水平滚动条)。
另一种方法是,如果您想查看所有超过某个最低阈值的邮箱和计数(如果您想查看全部,则将其设置为零):
perl -e '
$limit = 10;
while(<>){if(/ A=(?:login|plain):(\S+) /){$found->{$1}++;}}
@sorted=(sort {$found->{$a} <=> $found->{$b}} keys %$found);
foreach my $loop (@sorted) {
printf "%s: %d\n", $loop, $found->{$loop}."\n"
if ($found->{$loop} > $limit);
}
' < /var/log/exim/main.log