The attached patch extends the -d option of pflogsumm to use any
date parseable with the perl Date::Parse module in addition to
its normal ``today'' and ``yesterday'' options.  The option now
takes arguments such as ``pflogsumm -d 2006-08-15 ...''.

I wanted to be able to rerun pflogsumm against old postfix.log
files to get some statistics, and found the standard options
useless.  Running without the -d option on a typical daily log
file would throw the Per-Hour reports off since they're averages
per hour which is pretty useless if the daily log file has a few
lines from the previous or following day.

I think this should work with pretty much any version of postfix
in the OpenPKG trees as this hasn't changed in quite a while.

Bill
--
INTERNET:   [EMAIL PROTECTED]  Bill Campbell; Celestial Software LLC
URL: http://www.celestial.com/  PO Box 820; 6641 E. Mercer Way
FAX:            (206) 232-9186  Mercer Island, WA 98040-0820; (206) 236-1676

``Rightful liberty is unobstructed action according to our will within
limits drawn around us by the equal rights of others. I do not add 'within
the limits of the law' because law is often but the tyrant's will, and
always so when it violates the rights of the individual.''
    -Thomas Jefferson
diff -uNr ../postfix-2.2.5-20060528/pflogsumm-1.1.0/pflogsumm.1 
./pflogsumm-1.1.0/pflogsumm.1
--- ../postfix-2.2.5-20060528/pflogsumm-1.1.0/pflogsumm.1       2003-12-12 
06:41:55.000000000 -0800
+++ ./pflogsumm-1.1.0/pflogsumm.1       2006-08-25 17:41:57.257264392 -0700
@@ -225,6 +225,8 @@
 .Vb 2
 \&    -d today       generate report for just today
 \&    -d yesterday   generate report for just "yesterday"
+\&    -d YYYY-MM-DD  generate report for just "YYYY-MM-DD"
+\&                   (Really takes string Date::Parse will handle)
 .Ve
 .Vb 1
 \&    -e             extended (extreme? excessive?) detail
diff -uNr ../postfix-2.2.5-20060528/pflogsumm-1.1.0/pflogsumm.pl 
./pflogsumm-1.1.0/pflogsumm.pl
--- ../postfix-2.2.5-20060528/pflogsumm-1.1.0/pflogsumm.pl      2006-08-25 
17:39:01.000059560 -0700
+++ ./pflogsumm-1.1.0/pflogsumm.pl      2006-08-25 17:43:45.572797928 -0700
@@ -10,7 +10,7 @@
 
 =head1 SYNOPSIS
 
-    pflogsumm.pl -[eq] [-d <today|yesterday>] [-h <cnt>] [-u <cnt>]
+    pflogsumm.pl -[eq] [-d <today|yesterday|YYYY-MM-DD>] [-h <cnt>] [-u <cnt>]
        [--verp_mung[=<n>]] [--verbose_msg_detail] [--iso_date_time]
        [-m|--uucp_mung] [-i|--ignore_case] [--smtpd_stats] [--mailq]
        [--problems_first] [--rej_add_from] [--no_bounce_detail]
@@ -37,6 +37,9 @@
 
     -d today       generate report for just today
     -d yesterday   generate report for just "yesterday"
+    -d YYYY-MM-DD  generate report for just "YYYY-MM-DD"
+                   (Actually this will take any date string
+                   parsable by the perl Date::Parse module)
 
     -e             extended (extreme? excessive?) detail
 
@@ -1372,9 +1375,10 @@
 
     my $time = time();
     if($dateOpt eq "yesterday") {
-       $time -= $aDay;
+               $time -= $aDay;
     } elsif($dateOpt ne "today") {
-       die "$usageMsg\n";
+               use Date::Parse;
+               $time = str2time($dateOpt);
     }
     my ($t_mday, $t_mon) = (localtime($time))[3,4];
 

Reply via email to