Mailgraph与正则表达式配置

时间:2013-05-03 15:17:11

标签: perl

MAILGRAPH监控工具配置。

此工具生成发送/接收/退回/拒绝/垃圾邮件/病毒邮件的图表 除了垃圾邮件和病毒之外,所有图表都在生成,因为我的日志文件与其他文件不同

在其中一个文档中,他们在regex下面使用了日志格式

logformat:

Jan  8 03:15:26 mailtest amavis[12306]: (12306-14)   Blocked    SPAM ,
LOCAL [127.0.0.1] [69.95.139.186]  est.it> ->  xxx.fr>
, quarantine: spam/spam-Gca-eg8QanXu.gz  , Message-ID:
 sleeting>  , mail_id:
Gca-eg8QanXu , Hits: 22.996 , size: 21007 , Subject: "re:worth every
dollar" , Tests:
[BAYES_99=3.5,HTML_80_90=0.146,HTML_IMAGE_ONLY_24=0.502,HTML_MESSAGE=0.001,RAZOR2_CF_RANGE_51_100=0.056,RAZOR2_CHECK=1.511,RCVD_IN_BL_SPAMCOP_NET=1.216,RCVD_IN_DSBL=3.805,RCVD_IN_XBL=3.076,URIBL_JP_SURBL=2.462,URIBL_SBL=0.996,URIBL_SC_SURBL=4.263,URIBL_WS_SURBL=1.462]
, 3303 ms

正则表达式格式:

if(   $text =~ /^\([0-9-]+\)\s+(Passed|Blocked)\s+SPAM\b/)

但这绝不适合我的日志文件。你能不能帮我写正则表达式,帮助我生成垃圾邮件和病毒图。我的日志文件在

下面

日志格式:

May  3 20:23:42 mx2 amavisd: May  3 20:23:42 mx2.example.com /usr/sbin/amavisd[25190]: (25190-20) Passed SPAM, [217.11.177.26] [72.0.144.176]  -> , quarantine: spam-ehiWxkOBcaOO.gz, mail_id: ehiWxkOBcaOO, Hits: 40.024, size: 853, queued_as: 5EEF64770, 5211 ms
-bash: syntax error near unexpected token `('

1 个答案:

答案 0 :(得分:1)

你非常接近!请尝试以下方法:

/\(([0-9-]+)\)\s+(Passed|Blocked)\s+SPAM\b/

这省略了^,因为您不希望匹配从行的开头开始。此外,它使用并转义括号,以捕获数字和短划线。

希望这有帮助!