我想构建一个 python 脚本,它在我的 smtp 服务器上通过 exim 日志文件进行 greps,并每天、每周和每月报告大多数发送域的总数。我对python很陌生,我正在努力实现这一目标。
exim 日志文件中的相关行通常如下所示:
Feb 24 00:00:23 smtp1.mail.net exim[5660]: 2014-02-24 00:00:23 1Wuniq-mail-idSo-Fg -> someuser@somedomain.com R=mail T=remote_smtp H=smtp.mail.net [000.00.34.17]
Feb 24 00:00:23 smtp1.mail.net exim[5660]: 2014-02-24 00:00:23 1Wuniq-mail-idSo-Fg -> someuser@somedomain.com R=mail T=remote_smtp H=smtp.mail.net [000.00.34.17]
Feb 24 00:00:23 smtp1.mail.net exim[5661]: 2014-02-24 00:00:23 1Wuniq-mail-idSm-1h => someuser@somedomain.com R=mail T=pop_mail_net H=mta.mail.net [000.00.34.6]
Feb 24 00:00:23 smtp1.mail.net exim[5661]: 2014-02-24 00:00:23 1Wuniq-mail-idSm-1h Completed
,sys
和模块应该足以实现这一点(?)os
。re
我还想使用字典,因为我想每天在 cron 中运行脚本。
主要问题是:我如何仅通过相关行进行grep?Exim 记录了很多,我只想 grep 包含“=> 和 ->”的行。与以“1W”开头的 uniq maild ID 结合使用。此外,对于每日脚本运行,脚本必须“跟踪”日志文件,并且应该从脚本上次执行时停止解析日志文件的最后一个位置开始。为了生成可靠的每日发送域计数,这是必要的。
帮助将不胜感激。