Есть ли у кого-нибудь скрипт, который может выводить количество писем, отправленных за последний час, то есть исходящую пропускную способность 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 сентября.