Current Issue


Table of contents

CD-ROM

Sys Admin and The Perl Journal CD-ROM version 12.0

Version 12.0 delivers every issue of Sys Admin from 1992 through 2006 and every
issue of The Perl Journal from 1996-2002 in one convenient CD-ROM!

Order now!

Sys Admin Magazine > Archives > 2001 > July 2001
Listing 1 | Listing 2 | Listing 3 | Listing 4 | Listing 5 | Listing 6 | Listing 7 | Listing 8 | Listing 9 | Listing 10 | Article
Listing 7 - detail.pl


#!/usr/bin/perl
#   detail.pl 1.8 2001-02-05 12:31:45-05 news Exp

# quick anal of stat.detail member info

require "getopts.pl";
$OptionString = "suUG:SHL:pP";
&Getopts($OptionString) || &Usage;

# sanity check on options
$opt_H = 1 if (($opt_p || $opt_L) && !$opt_H);

$KB = 1024;
$MB = $KB * $KB;

$HdrStr = "endtime    sec  <-xover-->    <--arts--->  <--posts-->  grp  User\n";
$HdrNum = 0;

while (<>) {
	@info = split;
	# see if we only want part of the data
	$Feed = $info[2];
	next if (defined $opt_G && $Feed ne $opt_G);
	# here was save connect info if asked
	if ($opt_U) {
		$usage{$info[0]}++;
		$usage{$info[1]}--;
	}
	$et = $info[1] - $info[0];
	@lt = localtime($info[1]);
	$lt = sprintf "%02d:%02d:%02d", $lt[2], $lt[1], $lt[0];
	$user = $info[5];
	# drop refused connections
	next if $user =~ m/^-@?/;
	$user =~ s/\@prodigy.net//i;
	$realm = $info[17];
	unless ($opt_S) {
		&PutHdr;

		$OVsize = &FWbytes($info[7], 6);
		$ARsize = &FWbytes($info[9], 8);
		printf "%s %5d %4d %s %5d %s %3d %8d %4d %s@%s\n",
			$lt, $et, $info[6], $OVsize, $info[8], $ARsize,
			$info[14], $info[15], $info[16], $user, $realm
		;
	}

	if ($opt_s || $opt_u) {
		# count overviews
		$T_ov_num = $info[6];
		$T_ov_size = $info[7];
		# count articles
		$T_art_num = $info[8];
		$T_art_size = $info[9];

		# add to summaries
		$S_ov_num += $T_ov_num;
		$S_ov_size += $T_ov_size;
		$S_art_num += $T_art_num;
		$S_art_size += $T_art_size;
		$S_groups += $info[16];
		$S_post_num += $info[14];
		$S_post_size += $info[15];
		$S_conn_time += $et;
		$S_conn_num++;

		# keep by-user stats - some needed for summary
		$U_ov_num{$user} += $T_ov_num;
		$U_ov_size{$user} += $T_ov_size;
		$U_art_num{$user} += $T_art_num;
		$U_art_size{$user} += $T_art_size;
		$U_groups{$user} += $info[16];
		$U_conn_sec{$user} += $et;
		$U_conn_num{$user}++;
		if ($info[14]) {
			$U_post_num{$user} += $info[14];
			$U_post_size{$user} += $info[15];
		}
	}
}
print "\n" unless $opt_S;

# output summary stats
if ($opt_s) {
	# new page if at end of page
	print "\f" if ($opt_L && ($opt_L - $HdrNum) < 6);
	print "Summary of usage\n\n" if $opt_H;
	printf "%d overviews in %d groups, totalling %.1>


				  



MarketPlace

Build IT Knowledge with Current & Trusted Content
Helps Employees Develop & Hone New Technical Programming Skills. Sign Up & Get Full Access.

Six Sigma Certification
100% Online-Six Sigma Certificate from Villanova - Find Out More Now.

Workflow Enabled Help Desk & IT Service Management
Automate service desk activities and integrate processes across IT. Learn more here.

WinDev 11 - Powerful IDE
Develop 10 times faster ! ALM, IDE, .Net, RAD, 5GL, Database, 5GL, 64-bit, etc. Free Express version

Wanna see your ad here?