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