Using cron for Daily and Weekly Statistics
The mailstats program prints the contents of the statistics file, but it does not zero (clear) the counters in that file. To zero that file, you need to truncate it. One easy way to do this is:
# cp /dev/null /etc/mail/statistics
When sendmail discovers an empty statistics file, it begins gathering statistics all over again. One use for truncation is to collect daily reports from mailstats. Consider the following simple shell script:
#!/bin/sh ST=/etc/mail/statistics MS=/usr/etc/mailstats if [ -s $ST -a -f $MS ]; then $MS | mail -s "Daily mail stats" postmaster cp /dev/null $ST fi exit 0
When run, this script checks to see whether a nonempty
statistics file and the
mailstats program both exist.
If they do, mailstats is run,
printing the statistics, which are then mailed to
postmaster
. The
statistics file is then truncated to a size of zero.
Such a script could be run once per night using the
cron(8) facility with a
crontab(5) entry like
this:
0 0 * * * sh /usr/ucb/mailstats.script >/dev/null 2>&1
Here, mailstats.script
is the name given to
the earlier shell script, and the 0 0
causes that script
to be executed once per day at midnight.
Moving and renaming the statistics file allows you to automatically collect daily copies of that file. Consider the following variation on the previous shell script:
#!/bin/sh BASE=/etc/mail ST=statistics MS=${BASE}/stats_arch if [ -d $BASE ]; then cd $BASE if [ -s $ST -a -d $MS ]; then mailstats | mail -s "Daily ...
Get sendmail, 4th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.