#!/usr/bin/perl
&usage() if($#ARGV < 3);

($item, $getcpu, $w, $c) = @ARGV;

if($getcpu =~ /all/i) {
	$cpuline = 2;
} else {
	$cpuline = $getcpu + 3;
}

$linereturn = `/usr/bin/sar -P ALL -u 1 5 |grep Average | head -n $cpuline | tail -n 1`;
chomp($linereturn);
($ignore, $cpu, $data{user}, $data{nice}, $data{'system'}, $data{iowait}, $data{idle}) = split(/[ ]+/,$linereturn);

$value = $data{$item};

if( $item ne 'idle' ) {
	if( $value > $c ) {
		print "CRITICAL - $item CPU ($getcpu) $value% | $item=$value%;;;;\n";
		exit(2);
	} 
	if( $value > $w ) {
		print "WARNING - $item CPU ($getcpu) $value% | $item=$value%;;;;\n";
		exit(1);
	}
	print "OK - $item para CPU ($getcpu) $value% | $item=$value%;;;;\n";
	exit(0);
} else {
	if( $value > $w ) {
		print "OK - $item para CPU ($getcpu) $value% | $item=$value%;;;;\n";
		exit(0);
	}
	if( $value > $c ) {
		print "WARNING - $item CPU ($getcpu) $value% | $item=$value%;;;;\n";
		exit(1);
	}
	print "CRITICAL - $item CPU ($getcpu) $value% | $item=$value%;;;;\n";
	exit(2);
}

sub usage() {
	print "Incorrect use of check plugin\n";
	print "Correct use: ./check_sar_cpu.pl <item> <cpu> <warning> <critical>\n";
	exit(2);
}
