Назад | Перейти на главную страницу

Как рассчитать пропускную способность sendmail

Есть ли у кого-нибудь скрипт, который может выводить количество писем, отправленных за последний час, то есть исходящую пропускную способность sendmail. Это должно быть возможно определить, проанализировав журнал почты (/ var / log / maillog)?

Может быть, есть какой-нибудь СОПО?

С помощью mailstats (/ usr / sbin / mailstats) кажется не очень полезным, поскольку он дает статистику только с момента первого включения почтового сервера, а не за последний час. Может я ошибаюсь?

Думаю, ты ошибаешься насчет почтовой статистики. Если вы используете флаг «-p», он сбросит статистику, чтобы вы могли запускать ее ежечасно из cron следующим образом:

/ usr / sbin / mailstats -p

... и начните новую статистику за следующий час. Надеюсь, это поможет.

Для информации - это сценарий, который у меня получился (настроен на запуск через 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('Y-m-d, H:i:s') . ", $numSent");
fclose($fh);
?>

Я не очень знаком с sendmail, так как предпочитаю postfix, но вы можете использовать либо pflogsum для ежедневной статистики, либо grep'ing через / var / log / maillog для вопросов специального типа. Примеры:

grep 'Sep 28 09:' /var/log/maillog | grep 250 | wc -l

должен получить количество успешно доставленных писем с 09:00 до 09:59 28 сентября.