系统管理工具包: 过滤电子邮件中的垃圾邮件和病毒
2008-11-11 08:28:08 来源:WEB开发网几乎不需要进行任何额外的工作,您就可以从日志中提取相关信息,并且将数据写入到数据库中。清单 4 更详细地显示了解析 Amavis 日志信息的脚本的框架。
清单 4. 解析 Amavis 日志的脚本的框架
#!/usr/bin/perl
use Time::ParseDate;
while(<STDIN>)
{
chomp;
next unless (m{/usr/bin/amavisd[d+]: (d+-d{2})});
next if (m{(mcfilter|slpfliter)});
if (m/(Passed|Blocked) [A-Z]+/)
{
my ($datetime,$host,$proc_mode,$proc_type,
$sender,$recip,$hits,$msgid,$mailid);
my @blocks = split(/s+/);
# Extract the date
$datetime = parsedate(sprintf("%s %s %s",@blocks[0..2]));
# Extract the hose
$host = $blocks[3];
# Extract processing information
($proc_mode,$proc_type) = (m/(Passed|Blocked) ([-A-Z]+)/);
# Extract the sender/recipient information
($sender,$recip) = (m/<(.*?)> -> <(.*?)>/);
# Extract the spam score; anything with a negative score
# is effectively zero (i.e. it passed)
($hits) = (m/Hits: ([-0-9.]+),/);
$hits = 0 if ($hits eq '-');
# Now write the information into a database...
}
}
如何将该信息写入到数据库表中,留作读者的练习。如果您决定使用这个脚本,那么您应该记录日期、电子邮件地址、垃圾邮件得分、处理以及其他的信息。这将再一次从数据库中提取最大可能的信息。
更多精彩
赞助商链接