|
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 : |
##################################################################
#
# clamav script ver. 0.85.1 for Logwatch.
#
# Written by S. Schimkat <www.schimkat.dk>.
#
# Find latest version here: www.schimkat.dk/clamav
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
##################################################################
$Detail = $ENV{'LOGWATCH_DETAIL_LEVEL'};
my $IgnoreUnmatched = $ENV{'clamav_ignoreunmatched'} || 0;
while (defined($ThisLine = <STDIN>)) {
if (( $ThisLine =~ /^Setting connection queue length to \d+/ ) or
( $ThisLine =~ /^clamd daemon/ ) or
( $ThisLine =~ /^Log file size limited to \d+ bytes\./ ) or
( $ThisLine =~ /^Exiting \(clean\)/ ) or
( $ThisLine =~ /^Self checking every \d+ seconds\./ ) or
( $ThisLine =~ /^Unix socket file/ ) or
( $ThisLine =~ /^Protecting against \d+ viruses\./ ) or
( $ThisLine =~ /^Reading databases from/ ) or
( $ThisLine =~ /file removed\./ ) or
( $ThisLine =~ /support enabled\./ ) or
( $ThisLine =~ /support disabled\./ ) or
( $ThisLine =~ /^Archive/ ) or
( $ThisLine =~ /^Running as user/ ) or
( $ThisLine =~ /^Log file size limit/ ) or
( $ThisLine =~ /^Bound to.*port \d*/ ) or
( $ThisLine =~ /^Detection of broken executables enabled./ ) or
( $ThisLine =~ /^SIGHUP caught: re-opening log file./ ) or
( $ThisLine =~ /^No stats for Database check/ )) {
# We do not care about these.
} elsif (($Check) = ($ThisLine =~ /^SelfCheck: (.*?)\.?\s?\n/i)) {
$SelfCheck{$Check}++;
} elsif (($Virus) = ($ThisLine =~ /^.+?: (.*?) FOUND/i )) {
$VirusList{$Virus}++;
} elsif (($Viruses) = ($ThisLine =~ /^Database correctly reloaded \((\d+) viruses\)/i )) {
$DatabaseReloads++;
$DatabaseViruses = $Viruses;
} elsif (($ThisLine =~ /Stopped at/)) {
$DaemonStop++;
} elsif (($ThisLine =~ /Daemon started/)) {
$DaemonStart++;
} else {
push @OtherList,$ThisLine;
}
}
if (($DaemonStop) and ($Detail >= 5)) {
print "\nDaemon stopped: ". $DaemonStop." Time(s)\n";
}
if (($DaemonStart) and ($Detail >= 5)) {
print "\nDaemon started: ". $DaemonStart." Time(s)\n";
}
if (keys %VirusList) {
print "\nViruses detected:\n";
foreach $Virus (sort {$a cmp $b} keys %VirusList) {
print ' ' . $Virus . ": ". $VirusList{$Virus} . " Time(s)\n";
}
}
if ((keys %SelfCheck) and ($Detail >=5)) {
print "\nDaemon check list:\n";
foreach $Check (sort {$a cmp $b} keys %SelfCheck) {
print ' ' . $Check . ": ". $SelfCheck{$Check} . " Time(s)\n";
}
}
if ($DatabaseReloads) {
print "\nVirus database reloaded $DatabaseReloads time(s) (last time with $DatabaseViruses viruses)\n";
}
if (($#OtherList >= 0) and (not $IgnoreUnmatched)){
print "\n**Unmatched Entries**\n";
print @OtherList;
}
exit(0);
# vi: shiftwidth=3 tabstop=3 syntax=perl et