Exim邮件服务器月度收发邮件数量统计方法咨询
Exim邮件服务器月度收发邮件数量统计方法咨询
嘿,针对你的两台Exim服务器(一台专收、一台专发)的月度邮件统计需求,我给你整理了实用的操作方法,都是业内常用的思路:
首先得明确:Exim的邮件收发记录全存在日志文件里,默认路径一般是/var/log/exim/mainlog(Debian/Ubuntu系可能是/var/log/exim4/mainlog,RHEL/CentOS系大多是前者),而且旧日志通常会被压缩成.gz格式,统计时别忘了把这些也包含进去。
一、统计发送服务器的月度外发邮件数
你的发送服务器负责往外投递邮件,我们要找的是Exim成功把邮件发到远程服务器的记录,日志里对应的标志是=>(代表邮件已从服务器发出并完成投递)。
具体命令:
- 如果日志都是未压缩的文本文件:
grep "2024-10" /var/log/exim/mainlog | grep "=>" | wc -l
解释一下:
grep "2024-10"是过滤出2024年10月的所有日志行(如果你的日志用英文月份缩写,比如Oct,就改成grep "Oct");grep "=>"筛选出所有成功外发的记录;wc -l用来统计行数,也就是外发邮件的总数。
- 如果有压缩的旧日志(比如
mainlog.1.gz这类),用zgrep就能直接读取压缩文件,不用手动解压:
zgrep "2024-10" /var/log/exim/mainlog* | grep "=>" | wc -l
这个命令会自动处理所有压缩和未压缩的日志文件,不会遗漏。
二、统计接收服务器的月度收件数量
你的接收服务器负责收外部邮件,对应的日志标志是<=(代表Exim成功从远程服务器接收到邮件)。
具体命令:
- 未压缩日志的情况:
grep "2024-10" /var/log/exim/mainlog | grep "<=" | wc -l
解释:
grep "2024-10"过滤当月日志(同样,根据你的日志日期格式调整,比如日志是01/Oct/2024这种格式,就改成grep "/Oct/2024");grep "<="筛选出所有成功接收的邮件记录;wc -l统计总数。
- 包含压缩日志的情况:
zgrep "2024-10" /var/log/exim/mainlog* | grep "<=" | wc -l
额外小提示:
如果你想要更精准的统计(比如排除退信、重试的记录),可以加额外的关键词过滤:
- 发送服务器:
grep "=>" | grep "completed",只统计完全成功投递的邮件; - 接收服务器:
grep "<=" | grep "accepted",只统计被服务器正式接受的邮件。
备注:内容来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

