有没有人有一个脚本,可以输出在最后一小时内发送的邮件数量,即sendmail出站吞吐量。 应该可以通过分析邮件日志( / var / log / maillog )来确定吗?
也许有一些FOSS来帮忙?
使用mailstats ( / usr / sbin / mailstats )似乎没有多大用处,因为它仅仅提供邮件服务器第一次启动时的状态,而不是最后一个小时。 也许我错了?
你对我认为的mailstats错了。 如果你使用“-p”标志,它会重置统计数据,所以你可以像这样从cron每小时运行一次:
/ usr / sbin / mailstats -p
…开始下一个小时的新的统计数据。 希望有所帮助。
我对sendmail并不是很熟悉,因为我更喜欢postfix,但是您可以使用pflogsum进行日常统计,或者通过/ var / log / maillog使用特殊types的问题。 例子:
grep 'Sep 28 09:' /var/log/maillog | grep 250 | wc -l
9月28日上午9点至9点59分收到成功发送的邮件。
对于Info – 这是我结束的脚本(设置为每小时通过cron运行):
#!/usr/bin/php <?php // Get time in sendmail format for last hour. $dateMonth = date("M", strtotime("-1 hour")); $dateDay = date("j", strtotime("-1 hour")); if ($dateDay < 10) $dateDay = " $dateDay"; $dateHour = date("H", strtotime("-1 hour")); $numSent = shell_exec("grep '{$dateMonth} {$dateDay} {$dateHour}:' /var/log/maillog | grep 'Message accepted for delivery' | wc -l"); // Log value $logFile = "whereEverYouWant.log"; if(($fh = fopen($logFile,'a')) === FALSE) die("Failed to open \"$logFile\" for appending!\n"); fwrite($fh, date('Ymd, H:i:s') . ", $numSent"); fclose($fh); ?>