#!/usr/bin/env php '.1.3.6.1.2.1.25.2.3.1.5', 'totalin' => '.1.3.6.1.2.1.25.2.3.1.5', 'used' => '.1.3.6.1.2.1.25.2.3.1.6', 'failures' => '.1.3.6.1.2.1.25.2.3.1.7', 'index' => '.1.3.6.1.2.1.25.2.3.1.1', 'description' => '.1.3.6.1.2.1.25.2.3.1.3', 'sau' => '.1.3.6.1.2.1.25.2.3.1.4' ); if ($cmd == 'index') { $return_arr = ss_host_disk_reindex( cacti_snmp_walk($hostname, $snmp_community, $oids['index'], $snmp_version, $snmp_auth_username, $snmp_auth_password, $snmp_auth_protocol, $snmp_priv_passphrase, $snmp_priv_protocol, $snmp_context, $snmp_port, $snmp_timeout, $ping_retries, $max_oids, SNMP_POLLER) ); if (cacti_sizeof($return_arr)) { foreach ($return_arr as $item) { print $item . "\n"; } } } elseif ($cmd == 'num_indexes') { $return_arr = ss_host_disk_reindex( cacti_snmp_walk($hostname, $snmp_community, $oids['index'], $snmp_version, $snmp_auth_username, $snmp_auth_password, $snmp_auth_protocol, $snmp_priv_passphrase, $snmp_priv_protocol, $snmp_context, $snmp_port, $snmp_timeout, $ping_retries, $max_oids, SNMP_POLLER) ); return cacti_sizeof($return_arr); } elseif ($cmd == 'query') { $arg = $arg1; $arr_index = ss_host_disk_reindex( cacti_snmp_walk($hostname, $snmp_community, $oids['index'], $snmp_version, $snmp_auth_username, $snmp_auth_password, $snmp_auth_protocol, $snmp_priv_passphrase, $snmp_priv_protocol, $snmp_context, $snmp_port, $snmp_timeout, $ping_retries, $max_oids, SNMP_POLLER) ); if (cacti_sizeof($arr_index)) { $arr = ss_host_disk_reindex( cacti_snmp_walk($hostname, $snmp_community, $oids[$arg], $snmp_version, $snmp_auth_username, $snmp_auth_password, $snmp_auth_protocol, $snmp_priv_passphrase, $snmp_priv_protocol, $snmp_context, $snmp_port, $snmp_timeout, $ping_retries, $max_oids, SNMP_POLLER) ); if (cacti_sizeof($arr)) { for ($i=0;($i $host_id, 'arg' => $arg, 'index' => $index)); if (is_array($value)) { if (($arg == 'total') || ($arg == 'used')) { $sau = preg_replace('/[^0-9]/i', '', db_fetch_cell_prepared("SELECT field_value FROM host_snmp_cache WHERE host_id = ? AND field_name = 'hrStorageAllocationUnits' AND snmp_index = ?", array($host_id, $index))); $snmp_data = cacti_snmp_get($hostname, $snmp_community, $oids[$arg] . ".$index", $snmp_version, $snmp_auth_username, $snmp_auth_password, $snmp_auth_protocol, $snmp_priv_passphrase, $snmp_priv_protocol, $snmp_context, $snmp_port, $snmp_timeout, $ping_retries, SNMP_POLLER); if ($snmp_data != '' && $snmp_data < 0) { return (abs($snmp_data) + 2147483647) * $sau; } elseif (is_numeric($snmp_data) && is_numeric($sau)) { return $snmp_data * $sau; } else { return 'U'; } } else { return cacti_snmp_get($hostname, $snmp_community, $oids[$arg] . ".$index", $snmp_version, $snmp_auth_username, $snmp_auth_password, $snmp_auth_protocol, $snmp_priv_passphrase, $snmp_priv_protocol, $snmp_context, $snmp_port, $snmp_timeout, $ping_retries, SNMP_POLLER); } } else { return $value; } } } function ss_host_disk_reindex($arr) { $return_arr = array(); if (cacti_sizeof($arr)) { for ($i=0;($i