LogwatchNetvaultScript
From Devwiki
Logwatch Netvault Script
#!/usr/bin/perl # Ffeil er mwn ddal pob peth o netvault # my ($client,$class,$warnLevel,$message); my %msg; my %JobNames; $JobName{55}="Some Job Name"; $JobName{202}="Some Other Job NAme"; while(defined($line=<STDIN>)) { chomp $line; next if ($line eq ''); $client = " "; $class = " "; $warnLevel=" "; $message=" "; $tempLine=$line; if ( $tempLine =~ /[Nn]et[Vv]ault/ ) { $tempLine=$line; $line =~ m/Job:\s'([0-9]+)'/ ; $job=$1; ($class) = ( $tempLine =~ /Class:\s'([\w\s]+)'/ ); $tempLine=$line; ($client) = ( $tempLine =~ /Client:\s'([\w\d]+)'/ ); $tempLine = $line; ($warnLevel) = ( $tempLine =~ /Warnlevel:\s'([\w\s]+)'/ ); $tempLine=$line; ($message) = ( $tempLine =~ /Msg:\s'([\w\s:\\\W]*)'/ ); if ($msg{$job}{$warnLevel}{$class}{$client}{$message} eq $message) { $msg{$job}{$warnLevel}{$class}{$client}{$message}{$count}++; } $msg{$job}{$warnLevel}{$class}{$client}{$message}=$message; } } if (keys %msg) { foreach $jobNumber(keys %msg) { print "---"; if ($JobNames{$jobNumber}) { print "$JobNames{$jobNumber} "; print "($jobNumber)\n\n"; } else { print "$jobNumber\n"; } foreach $warnType(keys %{$msg{$jobNumber}}) { print "**$warnType**\n\n"; foreach $class(keys %{$msg{$jobNumber}{$warnType}}) { print "\t==$class==\n"; foreach $client(keys %{$msg{$jobNumber}{$warnType}{$class}}) { $dataPlugin=0; print "\t\t-".$client."- \n"; foreach $message(keys %{$msg{$jobNumber}{$warnType}{$class}{$client}}) { if ($class eq "Data Plugin") { if($warnType eq "Severe Error") { print "\t\t\t".$message."\n"; } else { $dataPlugin++; } } else { print "\t\t\t"; if ($msg{$jobNumber}{$warnType}{$class}{$client}{$message}{$count}>0) { print "Repeated ".($msg{$jobNumber}{$warnType}{$class}{$client}{$message}{$count}+1)." times -"; } print $message."\n"; } } if($class eq "Data Plugin") { print "\t\t\t Data Plugin Skipped ".$dataPlugin." times\n"; } print "\n"; } } } } }