Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10 5/3/83; site umcp-cs.UUCP
Path: utzoo!watmath!clyde!floyd!harpo!seismo!rlgvax!cvl!umcp-cs!fred
From: fred@umcp-cs.UUCP
Newsgroups: net.sources
Subject: improved awk scripts for summarizing uucp log files
Message-ID: <5548@umcp-cs.UUCP>
Date: Wed, 29-Feb-84 12:03:27 EST
Article-I.D.: umcp-cs.5548
Posted: Wed Feb 29 12:03:27 1984
Date-Received: Fri, 2-Mar-84 13:38:56 EST
Organization: Univ. of Maryland, Computer Science Dept.
Lines: 223
Awhile back, Art Zemon submitted a couple of awk
scripts for summarizing /usr/spool/uucp/LOGFILE and /usr/spool/uucp/SYSLOG.
submitted a script for summarizing the output of the
LOGFILE summarizer script.
I've combined the scripts, and added some features. These scripts
are the result. Note that under Berkeley Unix they are directly
executable.
==========================================================================
summ_LOGFILE
==========================================================================
#! /bin/awk -f
#
# USEAGE: summ_LOGFILE /usr/spool/uucp/LOGFILE
#
# 14-Dec-83
#
# This script is based on one written by Art Zemon of FileNet Corp.
# It has been modified locally (by Fred Blonder ) to
# change the output format somewhat, and to sort it into
# alphabetical order by system name.
#
BEGIN {
if ( FILENAME == "-" ) {
print "Useage: summ_LOGFILE ";
exit
}
no_dev = 0;
}
$4 ~ /NO/ {
if ( $6 == "DEVICE)" ) {
temp = sprintf("%s\t%s", $2, $3);
if ( nose[no_dev - 1] != temp )
nose[no_dev++] = temp;
}
}
$5 ~ /\(call/ {
if ( $4 == "SUCCEEDED" )
++succeed[$7];
else if ( $4 == "FAILED" )
++fail[$7];
else if ( $4 == "LOCKED" )
++locked[$7];
else
print $0
}
$4 ~ /OK/ {
if ( $5 == "(startup)" )
++talk[$2];
else if ( $5 == "(conversation" )
++complete[$2];
}
END {
for ( i in succeed )
list[i] = i;
for ( i in fail )
list[i] = i;
for ( i in locked )
list[i] = i;
for ( i in talk )
list[i] = i;
printf("UUCP success/failure summary\n\n");
printf("System poll succ fail lock died\n\n");
for ( ; ; ) {
first = "~~~~~~"
for ( i in list ) {
if ( list[i] == i && i < first )
first = i;
}
if ( first == "~~~~~~" )
break;
i = first;
list[i] = "";
if ( ( talk[i] - succeed[i] ) < 0 )
printf("%-7s ? error %3d %3d %3d\n", i, fail[i], locked[i], talk[i] - complete[i]);
else
printf("%-7s %3d %3d %3d %3d %3d\n", i, talk[i] - succeed[i], succeed[i], fail[i], locked[i], talk[i] - complete[i]);
}
if ( no_dev > 0 )
printf("\nNO AVAILABLE DEVICE\n");
for(i=0; i) to
# change the output format somewhat, and to sort it into
# alphabetical order by system name.
#
BEGIN {
if ( FILENAME == "-" ) {
print "Useage: summ_SYSLOG ";
exit
}
}
$4 ~ /received/ {
from[$2] += $6;
from_time[$2] += $8;
total_from += $6;
total_from_time += $8;
see_saw[$2] += $6
++users[$1];
}
$4 ~ /sent/ {
to[$2] += $6;
to_time[$2] += $8;
total_to += $6;
total_to_time += $8;
see_saw[$2] -= $6;
++users[$1];
}
END {
print "Received:"
print " system bytes time (minutes)\n"
for ( ; ; ) {
first = "~~~~~~"
for ( i in from )
if ( from[i] != "*" && i < first )
first = i;
if ( first == "~~~~~~" )
break;
i = first;
printf("\t%-7s %7d %6.2f\n", i, from[i], from_time[i] / 60);
from[i] = "*";
}
print " ------- ------";
printf("\tTotals %7d %7.2f\n", total_from, total_from_time / 60);
print "\nSent:"
print " system bytes time (minutes)\n"
for ( ; ; ) {
first = "~~~~~~"
for ( i in to )
if ( to[i] != "*" && i < first )
first = i;
if ( first == "~~~~~~" )
break;
i = first;
printf("\t%-7s %7d %6.2f\n", i, to[i], to_time[i] / 60);
to[i] = "*";
}
print " ------- ------";
printf("\tTotals %7d %7.2f\n", total_to, total_to_time / 60);
print
print "Balance of bytes ( < 0 means more sent than received)\n"
for ( ; ; ) {
first = "~~~~~~"
for ( i in see_saw )
if ( see_saw[i] != "*" && i < first )
first = i;
if ( first == "~~~~~~" )
break;
i = first;
printf("\t%-7s %7d\n", i, see_saw[i]);
see_saw[i] = "*";
}
print
print "Messages (by user)\n"
for ( ; ; ) {
highest = 0
for ( i in users )
if ( users[i] > highest ) {
highest = users[i];
first = i;
}
if ( highest == 0 )
break;
i = first;
printf("\t%-7s %3d\n", i, users[i]);
users[i] = "";
}
}
==========================================================================
The output of summ_LOGFILE looks like:
UUCP connection status for 24 hour period ending \
Wed Feb 29 05:25:41 EST 1984
UUCP success/failure summary
System poll succ fail lock died
aicvax 0 1 0 0 0
allegra 6 0 2 0 0
am-vax ? error 0 0 0
aplvax 0 3 11 2 1
brl-bmd 0 1 0 0 0
bsos 0 21 4 0 0
cal-uni 0 13 2 1 2
cp1 1 0 3 0 0
cvl 1 35 3 0 4
dbl 0 24 2 1 0
eneevax 3 23 3 5 2
rlgvax 2 2 0 0 0
seismo 2 9 4 0 1
wb-chi 0 0 24 0 0
The fields are: number of times you were polled by that system,
number of times you polled that system, unsuccessful attempted
polls, polls which failed due to resources being locked, and number
of times uucico started up, but didn't terminate normally. The
``error'' message indicates that a poll suceeeded in connecting
and logging in, but uucico didn't start up correclty.
Fred Blonder
harpo!seismo!umcp-cs!fred