Die tägliche Postfix-Statistik gib uns heute

16. März 2020 | Aktualisiert 31. März 2020

Ein guter Mann aus Rostock (gem. Impressum) hat hier ein kleines Shellskript vorgestellt, mit dem man sich täglich seine Postfix-Statistik geben kann. Es verwendet pflogsumm und journalctl. Ich habe mir erlaubt, das etwas zu verfeinern bzw. zu bereinigen:

#!/bin/bash

MAILFROM=""
MAILTO=""
YESTERDAY=$(date --date=yesterday "+%Y-%m-%d 00:00:00")

# Generiere einen Tagesreport vom letzten Tag
LANG=C LC_ALL=C journalctl --no-pager -u postfix.service --since="$YESTERDAY" | \
    pflogsumm --mailq --rej_add_from | \
    mail -r "$MAILFROM" -s "Postfix Tages-Statistik für gestern, $YESTERDAY" $MAILTO

# Generiere zusätzlich noch einen Report für den gesamten letzten Monat
# wenn wir den ersten Tag des Monats haben
if [ "01" == $(date --date=today +%d) ]
then
    MON=$(date --date=yesterday "+%m")
    YEAR=$(date --date=yesterday "+%Y")
    LANG=C LC_ALL=C journalctl --no-pager -u postfix.service --since="$YEAR-$MON-01 00:00:00" | \
        pflogsumm --mailq --rej_add_from | \
        mail -r "$MAILFROM" -s "Postfix Monats-Statistik für $YEAR/$MON" $MAILTO
fi

Abgelegt in /etc/cron.daily/mailstats (ACHTUNG: keinen Punkt im Skriptnamen!) und mittels chmod+x ausführbar gemacht, muss nicht mehr peinlich genau darauf geachtet werden, dass das Skript um 23:59 Uhr startet. Es wertet den letzten Tag bis zum Moment des Aufrufes des Skriptes aus (journalctl kennt den Parameter --until, man kann es also ganz genau auf den letzten bzw. einen Tag einschränken). Und wenn heute der erste des Monats ist, wertet es zusätzlich den letzten Monat aus. Feddich 😜

 

  • Update 31. März 2020: der Skriptname für den CRON Daemon darf keinen Punkt enthalten (was für ein programmiertechnisches Armutszeugnis)