#!/usr/bin/php = '3') { echo("$ciscomodel"); $newhardware = $ciscomodel; } } pollDeviceIOS(); break; case "ProCurve": $sysDescr = str_replace(", ", ",", $sysDescr); list($newhardware, $newfeatures, $newversion) = explode(",", $sysDescr); list($newversion) = explode("(", $newversion); if(!strstr($ciscomodel, " ")) { echo("$ciscomodel"); $newhardware = str_replace("\"", "", $ciscomodel); } pollDeviceHP(); break; case "Snom": $sysDescr = `snmpget -Oqv -$snmpver -c $community $hostname 1.3.6.1.2.1.7526.2.4`; $sysDescr = str_replace("-", " ", $sysDescr); $sysDescr = str_replace("\"", "", $sysDescr); list($newhardware, $newfeatures, $newversion) = explode(" ", $sysDescr); pollDeviceSnom(); break; default: pollDevice(); } $newlocation = str_replace("\"","", $sysLocation); } else { $newstatus = '0'; } $uptimerrd = "rrd/" . $hostname . "-uptime.rrd"; if(!is_file($uptimerrd)) { $woo = `rrdtool create $uptimerrd \ DS:uptime:GAUGE:600:0:U \ RRA:AVERAGE:0.5:1:600 \ RRA:AVERAGE:0.5:6:700 \ RRA:AVERAGE:0.5:24:775 \ RRA:AVERAGE:0.5:288:797`; } rrd_update($uptimerrd, "N:$newuptime"); if ( $sysDescr && $sysDescr != $old_sysDescr ) { $update = "`sysDescr` = '$sysDescr'"; $seperator = ", "; mysql_query("INSERT INTO eventlog (host, interface, datetime, message) VALUES ('$id', NULL, NOW(), 'New sysDescr - $sysDescr')"); } if ( $newlocation && $location != $newlocation ) { $update = "`location` = '$newlocation'"; $seperator = ", "; mysql_query("INSERT INTO eventlog (host, interface, datetime, message) VALUES ('$id', NULL, NOW(), 'Changed location from $location to $newlocation')"); } if ( $newversion && $version != $newversion ) { $update .= $seperator . "`version` = '$newversion'"; $seperator = ", "; mysql_query("INSERT INTO eventlog (host, interface, datetime, message) VALUES ('$id', NULL, NOW(), 'Changed version from $version to $newversion')"); } if ( $newfeatures && $newfeatures != $features ) { $update .= $seperator . "`features` = '$newfeatures'"; $seperator = ", "; mysql_query("INSERT INTO eventlog (host, interface, datetime, message) VALUES ('$id', NULL, NOW(), 'Changed features from $features to $newfeatures')"); } if ( $newhardware && $newhardware != $hardware ) { $update .= $seperator . "`hardware` = '$newhardware'"; $seperator = ", "; mysql_query("INSERT INTO eventlog (host, interface, datetime, message) VALUES ('$id', NULL, NOW(), 'Changed hardware from $hardware to $newhardware')"); } if ( $newuptime && $uptime != $newuptime ) { $update .= $seperator . "`uptime` = '$newuptime'"; $seperator = ", "; } if( $status != $newstatus ) { $update .= $seperator . "`status` = '$newstatus'"; $seperator = ", "; if ($newstatus == '1') { $stat = "Up"; mysql_query("INSERT INTO alerts (importance, device_id, message) VALUES ('0', '$id', 'Device is up\n')"); } else { $stat = "Down"; mysql_query("INSERT INTO alerts (importance, device_id, message) VALUES ('9', '$id', 'Device is down\n')"); } mysql_query("INSERT INTO eventlog (host, interface, datetime, message) VALUES ('$id', NULL, NOW(), 'Device status changed to $stat')"); } if ( $newuptime ) { $update_uptime = mysql_query("UPDATE device_uptime SET device_uptime = '$newuptime' WHERE `device_id` = '$id'"); if(mysql_affected_rows() == '0') { $insert_uptime = mysql_query("INSERT INTO device_uptime (`device_uptime`, `device_id`) VALUES ('$newuptime','$id')"); } } if ($update) { $update_query = "UPDATE `devices` SET "; $update_query .= $update; $update_query .= " WHERE `id` = '$id'"; echo("Updating $hostname\n$update_query\n\n"); $update_result = mysql_query($update_query); } else { echo("No Changes to $hostname \n\n"); } } ?>