Problem
Generate mail server statistics daily on a Postfix mail system.
Analysis
By parsing postfix log files we can extract a lot of information. A great script for this purpose is pflogsumm [1].
For example on Debian/Ubuntu systems you can install it using apt-get
# apt-cache search pflogsumm pflogsumm - Postfix log entry summarizer
# apt-get install pflogsumm ...
You can also download the source and install it manually [1].
Solution
It makes sense to put a script into your /etc/cron.daily directory – all scripts in this directory are usually executed early in the morning. For exact time check your /etc/crontab file, you should see an entry like this:
02 4 * * * root nice -n 19 run-parts --report /etc/cron.daily
Create and edit a file:
/etc/cron.daily/pflogsumm.sh
#!/bin/sh
# Mail Statistics MAIL_LOG=/var/log/mail/info MAILHOST="your.mail-server-hostname.com" RECIPIENT="your@email.com"
# Generate the statistics and mail the result to $RECIPIENT /usr/sbin/pflogsumm -d yesterday ${MAIL_LOG} | \ mail -s "${MAILHOST} Mail Statistics" ${RECIPIENT}
The -d swich means, that only entries with yesterday’s date will be processed. The script is run with root permissions by default – if you want to change this, add a custom cron entry into your /etc/crontab file.
Now everything is set and there should be a nice mail server summary waiting for you in your mailbox every morning.