1#!/usr/local/bin/perl
2#
3# $Id: logstat.pl,v 4.0 1996/04/17 18:17:38 mj Exp $
4#
5# Statistics for ftntoss/ftnroute/ftnpack log files
6#
7
8$NEWSGROUPS = "fido.de";
9$SUBJECT    = "EchoMail statistics report";
10
11
12$INEWS      = "/usr/bin/inews -h -S";
13$SENDMAIL   = "/usr/lib/sendmail";
14
15
16require "getopts.pl";
17&Getopts('g:s:t:nm:');
18
19if($opt_g) {
20    $NEWSGROUPS = $opt_g;
21}
22if($opt_s) {
23    $SUBJECT    = $opt_s;
24}
25if($opt_t) {
26    $SUBJECT    = "$SUBJECT $opt_t";
27}
28if($opt_n) {
29    open(OUT, "|$INEWS") || die "logreport: can't open pipe to inews\n";
30    select(OUT);
31    $out_flag = 1;
32}
33if($opt_m) {
34    open(OUT, "|$SENDMAIL $opt_m")
35	|| die "logreport: can't open pipe to sendmail\n";
36    select(OUT);
37    $out_flag = 1;
38}
39
40
41
42while(<>) {
43
44    if( /^(... .. ..:..:..) ftntoss packet.*\((\d+)b\) from ([0-9:\/.]+) / ) {
45	$first = $1 if(! $first);
46	$size = $2;
47	$node = $3;
48
49	$in_total += $size;
50	$in_node{$node} += $size;
51    }
52
53    if( /(... .. ..:..:..) ftnpack .*packet \((\d+)b\) for ([0-9:\/.]+) / ) {
54	$last = $1;
55	$size = $2;
56	$node = $3;
57
58	$out_total += $size;
59	$out_node{$node} += $size;
60    }
61
62}
63
64
65sub in_bynumber  { $in_node{$b}  <=> $in_node{$a};  }
66sub out_bynumber { $out_node{$b} <=> $out_node{$a}; }
67
68
69
70print "Newsgroups: $NEWSGROUPS\n" if($opt_n);
71print "Subject: $SUBJECT\n";
72
73print "\n";
74
75
76print "Period $first -- $last\n\n";
77
78
79printf "In:  total           %7ldK\n", $in_total/1024;
80for $n (sort in_bynumber keys(%in_node)) {
81    printf "     %-16s%7ldK\n", $n, $in_node{$n}/1024;
82}
83
84printf "\n";
85
86printf "Out: total           %7ldK\n", $out_total/1024;
87for $n (sort out_bynumber keys(%out_node)) {
88    printf "     %-16s%7ldK\n", $n, $out_node{$n}/1024;
89}
90
91
92if($out_flag) {
93    close(OUT);
94}
95