0

MAILGRAPH 监控工具配置。

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

在其中一个文档中,他们使用下面的正则表达式来获取日志格式

日志格式:

1 月 8 日 03:15:26 mailtest amavis[12306]: (12306-14) 阻止垃圾邮件,
本地 [127.0.0.1] [69.95.139.186] est.it> -> xxx.fr>
, 隔离区: spam/spam-Gca-eg8QanXu.gz , Message-ID:
 雪橇> , mail_id:
Gca-eg8QanXu,点击:22.996,大小:21007,主题:“re:worth every
美元”,测试:
[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 毫秒

正则表达式格式:

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

但这永远不适合我的日志文件。你能帮我写正则表达式来帮助我生成垃圾邮件和病毒图吗?我的日志文件在下面

日志格式:

5 月 3 日 20:23:42 mx2 amavisd:5 月 3 日 20:23:42 mx2.example.com /usr/sbin/amavisd[25190]:(25190-20)通过垃圾邮件,[217.11.177.26] [72.0.144.176] -> , 隔离区: spam-ehiWxkOBcaOO.gz, mail_id: ehiWxkOBcaOO, 点击数: 40.024, 大小: 853, queued_as: 5EEF64770, 5211 ms
-bash:意外标记 `(' 附近的语法错误
4

1 回答 1

1

You are very close! Try the following:

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

This omits ^ since you don't want the match to start at the beginning of the line. Also, it uses and escapes the parentheses, to capture the digits and dash.

Hope this helps!

于 2013-05-03T15:59:06.457 回答