#! /usr/bin/php -q 1) { $host = $argv[1]; $community = $argv[2]; if (empty($community)) { fwrite(STDOUT,"Error: Missing Community"); exit(3); } if (!$walk1=@snmpwalk($host, $community, $HP_PhyDrvStatus)) { fwrite(STDOUT,"Unable to get info, host down?\n"); exit(3); } else if (!$walk2=@snmpwalk($host, $community, $HP_PhyDrvSmartStatus)) { fwrite(STDOUT,"Unable to get info, host down?\n"); exit(3); } else { $i = "0"; foreach ($walk1 as $status) { $i++; switch($status) { case 2: $result ="OK"; $errorlevel1 = "0"; break; case 3: $result = "Failed"; $errorlevel2 = "2"; break; case 4: $result = "Failing"; $errorlevel3 = "1"; break; default: $result = "unknown result"; $errorlevel4 = "3"; } fwrite(STDOUT,"Disk $i Status: $result\n"); } $i = "0"; foreach ($walk2 as $status) { $i++; switch($status) { case 2: $result ="OK"; $errorlevel5 = "0"; break; case 3: $result = "Failed"; $errorlevel6 = "2"; break; case 4: $result = "Failing"; $errorlevel7 = "1"; break; default: $result = "unknown result"; $errorlevel8 = "3"; } fwrite(STDOUT,"Disk $i SmartStatus: $result\n"); } if ($errorlevel2 || $errorlevel3 || $errorlevel4 || $errorlevel6 || $errorlevel7 || $errorlevel8) { if ($errorlevel2 || $errorlevel6) { exit(2); //Critical error } if ($errorlevel3 || $errorlevel7) { exit(1); //Warning Error } if ($errorlevel4 || $errorlevel8) { exit(3); //Unknown Error } } else { exit(0); //Success } } } else { fwrite(STDOUT,"Usage: HOSTIP SNMP-COMMUNITY\n"); } ?>