home *** CD-ROM | disk | FTP | other *** search
- From: vince@bcsaic.UUCP (Vince Skahan)
- Newsgroups: comp.mail.uucp,comp.lang.perl,alt.sources
- Subject: Re: Log summaries
- Message-ID: <45432@bcsaic.UUCP>
- Date: 18 Apr 91 15:19:21 GMT
-
- In article <1991Apr16.070654.15375@pronto.mh.nl> Johan Vromans <jv@mh.nl> writes:
- >
- >> Has anybody written a program (Perl?) to parse UUCP log files, to
- >> give an idea how much each UUCP connection's being used, and for how
- >> long?
- >
-
- Here's a HDB UUCP report generator in sh and awk.... it should scream if you
- run it through a2p and use split rather than awk-isms
-
-
-
- #------------------------- cut here --------------------------------
- #!/bin/sh
-
- STATS="/usr/spool/uucp/.Admin/xferstats"
- TMP="/tmp/hdb.tmp"
- cat $STATS | sort > $TMP # sort by system then process
-
- awk '{
-
- #
- # ------------ 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
- #
- #-------------------------------------------------------------------
-
- BEGIN{
-
- # initialize NAME to nothing
- NAME=" "
-
- # print header
-
- printf ("\n Summary of UUCP Statistics\n")
- printf ("\n Total Incoming Outgoing Percent\n")
- printf (" Bytes Bytes/sec Bytes/sec Bytes/sec Outgoing\n")
- printf (" ----- ---------- --------- --------- --------\n")
- }
-
- # step through the data file
- # outcoming data indicated by ->
- # ingoing data indicated by <-
- # find which system by /systemname/
-
- # incoming
- /<-/ {
- time_in = time_in + $9
- bytes_in = bytes_in + $7
- total_intime = total_intime + $9
- total_inbytes = total_inbytes + $7
- }
-
- #outgoing
- /->/ {
- time_out = time_out + $9
- bytes_out = bytes_out + $7
- total_outtime = total_outtime + $9
- total_outbytes = total_outbytes + $7
- }
-
- {
-
- if ( $1 != NAME )
- {
- if ( NAME != " " )
- {
- printf ("%15s %7d %7d %11d %11d %13d \n", NAME, host_bytes, host_rate, host_inrate, host_outrate, host_pct_out);
- }
- NAME = $1
- 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 (( ( $1 == NAME ) || ( $1 == " " ) ))
- {
- if ( $6 == "<-" ) {
- host_intime = host_intime + $9
- host_inbytes = host_inbytes + $7
- }
- else {
- host_outtime = host_outtime + $9
- host_outbytes = host_outbytes + $7
- }
-
- 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
- }
- }
- }
- END {
-
- # summarize, print the last guy, and print the totals pretty
-
- printf ("%15s %7d %7d %11d %11d %13d \n", NAME, host_bytes, host_rate, host_inrate, host_outrate, host_pct_out)
-
- 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
- printf("\n")
- printf(" total %7d %7d %11d %11d %13d \n", total_bytes, total_rate, total_inrate, total_outrate, total_pct_out);
- printf("\n")
- }
-
- }' $TMP
-
- rm $TMP
-
-
- --
- Vince Skahan vince@atc.boeing.com ...uw-beaver!bcsaic!vince
-
- (what is there in the construction of mobile homes that seems
- to attract tornadoes ??? )
-