|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /usr/share/logwatch/scripts/services/ |
Upload File : |
use strict;
########################################################
# $Id: tac_acc,v 1.8 2005/02/24 17:08:05 kirk Exp $
########################################################
########################################################
# Please send all comments, suggestions, bug reports,
# etc, to frank@fam-breedijk.com.
########################################################
my ($ThisLine, @fields, %activity, %isdn, @OtherList);
my $Detail = $ENV{'LOGWATCH_DETAIL_LEVEL'} || 0;
while (defined($ThisLine = <STDIN>)) {
@fields = split /\t/, $ThisLine;
if ( @fields == 11 && $fields[10] =~ /^cmd=/ ) {
unless ( exists $activity{$fields[1]} ) {
$activity{$fields[1]} = {};
}
unless ( exists $activity{$fields[1]}->{$fields[2]} ) {
$activity{$fields[1]}->{$fields[2]} = {};
}
chomp $fields[10];
$fields[10] =~ s/^cmd=//;
$activity{$fields[1]}->{$fields[2]}->{$fields[10]}++;
}
elsif ( @fields == 12 && $fields[11] =~ /^cmd=/ ) {
unless ( exists $activity{$fields[1]} ) {
$activity{$fields[1]} = {};
}
unless ( exists $activity{$fields[1]}->{$fields[2]} ) {
$activity{$fields[1]}->{$fields[2]} = {};
}
chomp $fields[11];
$fields[11] =~ s/^cmd=//;
$activity{$fields[1]}->{$fields[2]}->{$fields[11]}++;
}
elsif ( @fields == 27 && $fields[24] =~ /^elapsed_time=/ ) {
unless ( exists $isdn{$fields[2]} ) {
$isdn{$fields[2]} = {};
}
unless ( exists $isdn{$fields[2]}->{$fields[4]} ) {
$isdn{$fields[2]}->{$fields[4]} = {};
$isdn{$fields[2]}->{$fields[4]}->{'seconds'} = 0;
}
chomp $fields[24];
$fields[24] =~ s/^elapsed_time=//;
$isdn{$fields[2]}->{$fields[4]}->{'seconds'} += $fields[24];
}
elsif ( @fields == 10 && $fields[5] =~ /^start/ ) {
unless ( exists $isdn{$fields[2]} ) {
$isdn{$fields[2]} = {};
}
unless ( exists $isdn{$fields[2]}->{$fields[4]} ) {
$isdn{$fields[2]}->{$fields[4]}->{'start'} = 0;
}
$isdn{$fields[2]}->{$fields[4]}->{'start'}++;
}
else {
# Report any unmatched entries...
push @OtherList,$ThisLine;
}
}
if ((keys %activity) and ($Detail >= 5)) {
foreach my $host ( sort keys %activity ) {
print "\nActivity on $host:\n";
foreach my $user ( sort keys %{$activity{$host}} ) {
print "User: $user\n";
foreach my $command ( sort keys %{$activity{$host}->{$user}} ) {
print "$command\t$activity{$host}->{$user}->{$command} time(s)\n";
}
}
}
}
if ((keys %isdn) and ($Detail >= 5)) {
foreach my $host ( sort keys %isdn ) {
print "\nISDN on $host:\n";
foreach my $number ( sort keys %{$isdn{$host}} ) {
print "Number: $number dailed total $isdn{$host}->{$number}->{'seconds'} seconds";
if ($isdn{$host}->{$number}->{'start'}) {
print " started $isdn{$host}->{$number}->{'start'} times\n";
} else {
print "\n";
}
}
}
}
if ($#OtherList >= 0) {
print "\n**Unmatched Entries**\n\n";
print @OtherList;
}
exit(0);
# vi: shiftwidth=3 tabstop=3 syntax=perl et