WEB开发网
开发学院操作系统Linux/Unix 系统管理工具包: 过滤电子邮件中的垃圾邮件和病毒... 阅读

系统管理工具包: 过滤电子邮件中的垃圾邮件和病毒

 2008-11-11 08:28:08 来源:WEB开发网   
核心提示: 几乎不需要进行任何额外的工作,您就可以从日志中提取相关信息,系统管理工具包: 过滤电子邮件中的垃圾邮件和病毒(10),并且将数据写入到数据库中,清单 4 更详细地显示了解析 Amavis 日志信息的脚本的框架,如果您决定使用这个脚本,那么您应该记录日期、电子邮件地址、垃圾邮件得分、处理以及

几乎不需要进行任何额外的工作,您就可以从日志中提取相关信息,并且将数据写入到数据库中。清单 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...
  }
}

如何将该信息写入到数据库表中,留作读者的练习。如果您决定使用这个脚本,那么您应该记录日期、电子邮件地址、垃圾邮件得分、处理以及其他的信息。这将再一次从数据库中提取最大可能的信息。

上一页  5 6 7 8 9 10 

Tags:系统 管理 工具包

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接