diff options
Diffstat (limited to 'usr.sbin/sendmail/mailstats')
-rw-r--r-- | usr.sbin/sendmail/mailstats/Makefile | 4 | ||||
-rw-r--r-- | usr.sbin/sendmail/mailstats/mailstats.8 | 77 | ||||
-rw-r--r-- | usr.sbin/sendmail/mailstats/mailstats.c | 23 |
3 files changed, 97 insertions, 7 deletions
diff --git a/usr.sbin/sendmail/mailstats/Makefile b/usr.sbin/sendmail/mailstats/Makefile index d6a04f0bdc19..427c8df5d7ff 100644 --- a/usr.sbin/sendmail/mailstats/Makefile +++ b/usr.sbin/sendmail/mailstats/Makefile @@ -1,8 +1,8 @@ -# @(#)Makefile 8.1 (Berkeley) 6/7/93 +# @(#)Makefile 8.2 (Berkeley) 9/21/96 PROG= mailstats +MAN8= mailstats.8 CFLAGS+=-I${.CURDIR}/../src -NOMAN= noman .include "../../Makefile.inc" .include <bsd.prog.mk> diff --git a/usr.sbin/sendmail/mailstats/mailstats.8 b/usr.sbin/sendmail/mailstats/mailstats.8 new file mode 100644 index 000000000000..9a21edef1b9d --- /dev/null +++ b/usr.sbin/sendmail/mailstats/mailstats.8 @@ -0,0 +1,77 @@ +.\"/* +.\" * Copyright (c) 1996 John M. Vinopal +.\" * All rights reserved. +.\" * +.\" * Redistribution and use in source and binary forms, with or without +.\" * modification, are permitted provided that the following conditions +.\" * are met: +.\" * 1. Redistributions of source code must retain the above copyright +.\" * notice, this list of conditions and the following disclaimer. +.\" * 2. Redistributions in binary form must reproduce the above copyright +.\" * notice, this list of conditions and the following disclaimer in the +.\" * documentation and/or other materials provided with the distribution. +.\" * 3. All advertising materials mentioning features or use of this software +.\" * must display the following acknowledgement: +.\" * This product includes software developed for the NetBSD Project +.\" * by John M. Vinopal. +.\" * 4. The name of the author may not be used to endorse or promote products +.\" * derived from this software without specific prior written permission. +.\" * +.\" * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +.\" * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +.\" * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +.\" * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +.\" * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +.\" * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" * SUCH DAMAGE. +.\" */ +.\" $Id: mailstats.8,v 1.2 1996/09/23 22:24:33 wosch Exp $ +.Dd August 13, 1996 +.Dt MAILSTATS 8 +.Os +.Sh NAME +.Nm mailstats +.Nd display mail protocol statistics +.Sh SYNOPSIS +.Nm mailstats +.Op Fl o +.Op Fl C Ar sendmail.cf +.Op Fl f Ar sendmail.st +.Sh DESCRIPTION +.Nm Mailstats +displays mail statistics on a per mailer basis. +Each line of output contains +the mailer number, the count and byte-count of incoming messages, +the count and byte-count of outgoing messages, and the name of the +mailer unless the +.Fl o +flag is specified. Common mailers include smtp and local (eg: +.Nm mail.local, +the program which handles local delivery of mail). +.Pp +Statistics are read from the +.Nm sendmail +statistics file +.Ar sendmail.st, +the location of which is defined in +.Ar sendmail.cf, +or specified with the +.Fl f +flag. Mailers are likewise defined in the +.Ar sendmail.cf +file. Statistics are cumulative; zero the statistics file +to reset the counters. +.Sh FILES +.Bl -tag -width /var/log/sendmail.st -compact +.It Pa /etc/sendmail.cf +sendmail configuration file +.It Pa /var/log/sendmail.st +sendmail statistics file +.El +.Sh SEE ALSO +.Xr sendmail 8 , +.Xr mail.local 8 diff --git a/usr.sbin/sendmail/mailstats/mailstats.c b/usr.sbin/sendmail/mailstats/mailstats.c index 97ec33be7e92..cf112185cbca 100644 --- a/usr.sbin/sendmail/mailstats/mailstats.c +++ b/usr.sbin/sendmail/mailstats/mailstats.c @@ -40,9 +40,10 @@ static char copyright[] = #endif /* not lint */ #ifndef lint -static char sccsid[] = "@(#)mailstats.c 8.4 (Berkeley) 8/14/94"; +static char sccsid[] = "@(#)mailstats.c 8.8 (Berkeley) 9/25/96"; #endif /* not lint */ +#define NOT_SENDMAIL #include <sendmail.h> #include <mailstats.h> #include <pathnames.h> @@ -91,7 +92,8 @@ main(argc, argv) case '?': default: usage: - fputs("usage: mailstats [-C cffile] [-f stfile]\n", stderr); + fputs("usage: mailstats [-o] [-C cffile] [-f stfile]\n", + stderr); exit(EX_USAGE); } } @@ -189,13 +191,24 @@ main(argc, argv) exit (EX_OSFILE); } - if ((fd = open(sfile, O_RDONLY)) < 0) { + if ((fd = open(sfile, O_RDONLY)) < 0 || + (i = read(fd, &stat, sizeof stat)) < 0) + { fputs("mailstats: ", stderr); perror(sfile); exit(EX_NOINPUT); } - if (read(fd, &stat, sizeof(stat)) != sizeof(stat) || - stat.stat_size != sizeof(stat)) + if (i == 0) + { + sleep(1); + i = read(fd, &stat, sizeof stat); + if (i == 0) + { + bzero((ARBPTR_T) &stat, sizeof stat); + (void) time(&stat.stat_itime); + } + } + else if (i != sizeof stat || stat.stat_size != sizeof(stat)) { fputs("mailstats: file size changed.\n", stderr); exit(EX_OSERR); |