#!/usr/bin/perl
# Author : jakubowski Benjamin
# Date : 19/12/2005
# check_win_snmp_cpuload.pl IP COMMUNITY PORT warning critical
# Update : 08/06/2007
# Author : Eric. P
# Print  : CPULOAD
# Update : 03/09/2009
# Author : rau
# Print  : CPULOAD


sub print_usage {
print "check_win_snmp_cpuload.pl IP COMMUNITY warning critical\n";
}

$PROGNAME = "check_win_snmp_cpuload.pl";

if ( @ARGV[0] eq "" || @ARGV[1] eq "" || @ARGV[2] eq "" ) {
print_usage();
exit 0;
}

$STATE_CRITICAL = 2;
$STATE_WARNING = 1;
$STATE_UNKNONW = 3;

$STATE_OK = 0;

$IP=@ARGV[0];
$COMMUNITY=@ARGV[1];
$warning=@ARGV[2];
$critical=@ARGV[3];
$resultat =`snmpwalk -v 1 -c $COMMUNITY $IP 1.3.6.1.2.1.25.3.3.1.2`;
if ( $resultat ) {
@pourcentage = split (/\n/,$resultat);
# $i=0;
$io=0;
$iw=0;
$ic=0;
foreach ( @pourcentage ) {
        s/HOST-RESOURCES-MIB::hrProcessorLoad.\d+ = INTEGER://g;
        $use=$_;
         if ( $use < $warning )
         {    $io++;
         #   print "OK : CPU load $use%\n";

            ##### AJOUT ICI ######
         #   print "|cpu_load=".$use."%".";".$warning.";".$critical;
            ###################

          #  exit $STATE_OK;
            }
            elsif ( $use < $critical ) {   $iw++;
            }
            else {     $ic++;
                        }
        #    $i++;
            }

     if  ( $ic > 0 ) {
            print "CRITICAL : CPU load @pourcentage (% je CPU)\n";
            exit $STATE_CRITICAL;
            }

     if  ( $iw > 0 ) {
            print "WARNING : CPU load @pourcentage (% je CPU)\n";
            exit $STATE_WARNING;
            }



      if  ( $io > 0 ) {
            print "OK : CPU load @pourcentage (% je CPU)\n";
            exit $STATE_OK;
            }
            }
            else {
            print "Unkonwn : No response\n";
            exit $STATE_UNKNONW;
            }

# $use = $use_total / $i ;
#print @pourcentage;

