home *** CD-ROM | disk | FTP | other *** search
- From: vince@bcsaic.UUCP (Vince Skahan)
- Newsgroups: alt.sources
- Subject: Re: Log summaries
- Message-ID: <45562@bcsaic.UUCP>
- Date: 19 Apr 1991 20:55:46 GMT
-
- I've had a couple of requests for perl-versions of the HDB report
- generator I posted the other day...
-
- (there was a typo in the original awk one...there's an extra
- "{" in there at the beginning of the awk...
- sorry 'bout that)
-
- I've also included a sample data file to test on...
-
- 1. unshar this puppy
- 2. invoke by "sort < hdb-summ.dat | hdb-summ.pl"
- 3. let me know if you improve or drastically simplify this
- 4. enjoy...
-
- Vince
-
- #!/bin/sh
- # to extract, remove the header and type "sh filename"
- if `test ! -s ./hdb_summ.pl`
- then
- cat > ./hdb_summ.pl << '\End\Of\Shar\'
- #!/usr/local/bin/perl
- #
- # hdb_summ.pl
- #
- # this generates a report totalled on a system!user basis for HDB uucp
- # (basically an edited a2p output of an old-awk original program)
- #
- # invoke by "sort < hdb-data-file | this_program.pl"
- #
- # ------------ sample data for incoming information ------------
- #
- #dsinc!uucp M (11/9-7:37:59) (C,701,1) [sio1] <- 475 / 5.933 secs, 80 bytes/sec
- #
- # ----------- sample data for outgoing information --------------
- #
- #dsinc!bcs212 M (11/9-8:02:16) (C,828,1) [sio1] -> 341 / 0.450 secs, 757 bytes/sec
- #
- #-------------------------------------------------------------------
-
- # initialize NAME to nothing
- $NAME = ' ';
-
- # step through the data file
- # outcoming data indicated by ->
- # ingoing data indicated by <-
- # find which system by /systemname/
-
- # incoming
-
- while (<>) {
-
- ($user,$Fld2,$start,$Fld4,$interface,$in_out,$bytes,$Fld8,$time) = split(' ', $_, 9999);
-
- #incoming
- if (/<-/) {
- $time_in = $time_in + $time;
- $bytes_in = $bytes_in + $bytes;
- $total_intime = $total_intime + $time;
- $total_inbytes = $total_inbytes + $bytes;
- }
-
- #outgoing
- if (/->/) {
- $time_out = $time_out + $time;
- $bytes_out = $bytes_out + $bytes;
- $total_outtime = $total_outtime + $time;
- $total_outbytes = $total_outbytes + $bytes;
- }
-
- if ($user ne $NAME) {
- if ($NAME ne ' ') {
- write;
- }
- $NAME = $user;
- $host_intime = 0;
- $host_inbytes = 0;
- $host_outtime = 0;
- $host_outbytes = 0;
- $host_time = 0;
- $host_bytes = 0;
- $host_inrate = 0;
- $host_outrate = 0;
- $host_pct_out = 0;
- }
-
- if ((($user eq $NAME) || ($user eq ' '))) {
- if ($in_out eq '<-') {
- $host_intime = $host_intime + $time;
- $host_inbytes = $host_inbytes + $bytes;
- }
- else {
- $host_outtime = $host_outtime + $time;
- $host_outbytes = $host_outbytes + $bytes;
- }
-
- $host_time = $host_intime + $host_outtime;
- $host_bytes = $host_inbytes + $host_outbytes;
-
- if ($host_time > 0) {
- $host_rate = $host_bytes / $host_time;
- }
- if ($host_intime > 0) {
- $host_inrate = $host_inbytes / $host_intime;
- }
- if ($host_outtime > 0) {
- $host_outrate = $host_outbytes / $host_outtime;
- }
- if ($host_bytes > 0) {
- $host_pct_out = $host_outbytes * 100 / $host_bytes;
- }
- }
- }
-
- # summarize, print the last guy, and print the totals pretty
-
- write;
-
- $total_bytes = $total_inbytes + $total_outbytes;
- $total_time = $total_intime + $total_outtime;
-
- if ($total_time > 0) {
- $total_rate = $total_bytes / $total_time;
- }
- if ($total_intime > 0) {
- $total_inrate = $total_inbytes / $total_intime;
- }
- if ($total_outtime > 0) {
- $total_outrate = $total_outbytes / $total_outtime;
- }
-
- if ((($total_inbytes > 0) || ($total_outbytes > 0))) {
- $total_bytes = $total_inbytes + $total_outbytes;
- $total_time = $total_intime + $total_outtime;
- $total_pct_out = $total_outbytes * 100 / $total_bytes;
-
- $~ = "TOTALS";
- write;
- }
-
- format top =
- Summary of UUCP Statistics
- Total Incoming Outgoing Percent
- Bytes Bytes/sec Bytes Bytes/sec Bytes Bytes/sec Outgoing
- ----- ---------- ---- --------- ---- --------- --------
- .
-
- format =
- @<<<<<<<<<<< @>>>>>>> @>> @>>>>>>> @>> @>>>>>>> @>> @>>>
- $NAME, $host_bytes, $host_rate, $host_inbytes, $host_inrate, $host_outbytes, $host_outrate, $host_pct_out
- .
-
- format TOTALS =
-
- @>>>>>>> @>> @>>>>>>> @>> @>>>>>>> @>> @>>>
- $total_bytes,$total_rate, $host_inbytes, $total_inrate, $total_outbytes,$total_outrate, $total_pct_out
-
- .
-
- \End\Of\Shar\
- fi
- if `test ! -s ./hdb_summ.dat`
- then
- cat > ./hdb_summ.dat << '\End\Of\Shar\'
- system1!username M (12/5-17:06:02) (C,991,1) [tty000] <- 101292 / 462.083 secs, 219 bytes/sec
- system1!username M (1/4-7:55:19) (C,1623,1) [tty000] -> 179 / 0.600 secs, 298 bytes/sec
- system1!username M (1/4-8:24:53) (C,1670,1) [tty000] <- 21514 / 98.616 secs, 218 bytes/sec
- system1!username M (1/4-8:29:42) (C,1679,1) [tty000] <- 18821 / 86.400 secs, 217 bytes/sec
- system1!username M (1/4-8:32:38) (C,1689,1) [tty000] -> 189 / 0.650 secs, 290 bytes/sec
- system1!username M (1/4-8:43:53) (C,1707,1) [tty000] <- 2341 / 11.066 secs, 211 bytes/sec
- system3!username M (1/5-14:57:46) (C,2345,1) [tty000] <- 49824 / 247.333 secs, 201 bytes/sec
- system1!username M (3/1-13:24:41) (C,526,1) [tty000] <- 112050 / 510.983 secs, 219 bytes/sec
- system1!username M (3/2-1:05:48) (C,913,1) [tty000] <- 21514 / 22.800 secs, 943 bytes/sec
- system2!username M (3/31-4:24:13) (C,2683,1) [tty000] <- 10343 / 47.683 secs, 216 bytes/sec
- system2!username M (4/13-5:30:16) (C,7613,1) [tty000] <- 705099 / 3215.050 secs, 219 bytes/sec
- \End\Of\Shar\
- fi
- exit
- --
- Vince Skahan
- vince@atc.boeing.com ...uw-beaver!bcsaic!vince
-
- (ensure your child's future... fire and prosecute striking teachers !)
-