本文整理汇总了PHP中external_exec函数的典型用法代码示例。如果您正苦于以下问题:PHP external_exec函数的具体用法?PHP external_exec怎么用?PHP external_exec使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了external_exec函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: get_instance_stats
function get_instance_stats()
{
// Overall Ports/Devices statistics
$stats['ports'] = dbFetchCell("SELECT COUNT(*) FROM ports");
$stats['devices'] = dbFetchCell("SELECT COUNT(*) FROM devices");
$stats['edition'] = OBSERVIUM_EDITION;
// Per-feature statistics
$stats['sensors'] = dbFetchCell("SELECT COUNT(*) FROM `sensors`");
$stats['services'] = dbFetchCell("SELECT COUNT(*) FROM `services`");
$stats['applications'] = dbFetchCell("SELECT COUNT(*) FROM `applications`");
$stats['bgp'] = dbFetchCell("SELECT COUNT(*) FROM `bgpPeers`");
$stats['ospf'] = dbFetchCell("SELECT COUNT(*) FROM `ospf_ports`");
$stats['eigrp'] = dbFetchCell("SELECT COUNT(*) FROM `eigrp_ports`");
$stats['ipsec_tunnels'] = dbFetchCell("SELECT COUNT(*) FROM `ipsec_tunnels`");
$stats['munin_plugins'] = dbFetchCell("SELECT COUNT(*) FROM `munin_plugins`");
$stats['pseudowires'] = dbFetchCell("SELECT COUNT(*) FROM `pseudowires`");
$stats['vrfs'] = dbFetchCell("SELECT COUNT(*) FROM `vrfs`");
$stats['vminfo'] = dbFetchCell("SELECT COUNT(*) FROM `vminfo`");
$stats['users'] = dbFetchCell("SELECT COUNT(*) FROM `users`");
$stats['bills'] = dbFetchCell("SELECT COUNT(*) FROM `bills`");
$stats['alerts'] = dbFetchCell("SELECT COUNT(*) FROM `alert_table`");
$stats['alert_tests'] = dbFetchCell("SELECT COUNT(*) FROM `alert_tests`");
$stats['slas'] = dbFetchCell("SELECT COUNT(*) FROM `slas`");
$stats['statuses'] = dbFetchCell("SELECT COUNT(*) FROM `status`");
$stats['groups'] = dbFetchCell("SELECT COUNT(*) FROM `groups`");
$stats['group_members'] = dbFetchCell("SELECT COUNT(*) FROM `group_table`");
$stats['poller_time'] = dbFetchCell("SELECT SUM(`last_polled_timetaken`) FROM devices");
$stats['discovery_time'] = dbFetchCell("SELECT SUM(`last_discovered_timetaken`) FROM devices");
$stats['php_version'] = phpversion();
$os_text = external_exec("DISTROFORMAT=export " . $GLOBALS['config']['install_dir'] . "/scripts/distro");
foreach (explode("\n", $os_text) as $part) {
list($a, $b) = explode("=", $part);
$stats['os'][$a] = $b;
}
// sysObjectID for Generic devices
foreach (dbFetchRows("SELECT `sysObjectID`, COUNT(*) AS `count` FROM `devices` WHERE `os` = 'generic' GROUP BY `sysObjectID`") as $data) {
$stats['generics'][$data['sysObjectID']] = $data['count'];
}
// Per-OS counts
foreach (dbFetchRows("SELECT COUNT(*) AS `count`, `os` FROM `devices` GROUP BY `os`") as $data) {
$stats['devicetypes'][$data['os']] = $data['count'];
}
// Per-type counts
foreach (dbFetchRows("SELECT COUNT(*) AS `count`, `type` FROM `devices` GROUP BY `type`") as $data) {
$stats['types'][$data['type']] = $data['count'];
}
// Per-apptype counts
foreach (dbFetchRows("SELECT COUNT(*) AS `count`, `app_type` FROM `applications` GROUP BY `app_type`") as $data) {
$stats['app_types'][$data['app_type']] = $data['count'];
}
$stats['misc']['max_len']['port_label'] = dbFetchCell("SELECT MAX(LENGTH(`port_label`)) FROM `ports`");
$stats['misc']['max_len']['port_label_short'] = dbFetchCell("SELECT MAX(LENGTH(`port_label_short`)) FROM `ports`");
$stats['misc']['max_len']['port_label_base'] = dbFetchCell("SELECT MAX(LENGTH(`port_label_base`)) FROM `ports`");
$stats['misc']['max_len']['port_label_num'] = dbFetchCell("SELECT MAX(LENGTH(`port_label_num`)) FROM `ports`");
$stats['version'] = OBSERVIUM_VERSION;
$stats['uuid'] = get_unique_id();
return $stats;
}
示例2: get_localhost
function get_localhost()
{
global $cache;
if (!isset($cache['localhost'])) {
$cache['localhost'] = php_uname('n');
if (!strpos($cache['localhost'], '.')) {
// try use hostname -f for get FQDN hostname
$localhost_t = external_exec('/bin/hostname -f');
if (strpos($localhost_t, '.')) {
$cache['localhost'] = $localhost_t;
}
}
}
return $cache['localhost'];
}
示例3: wmi_query
function wmi_query($wql, $override = NULL, $namespace = NULL)
{
if (!isset($namespace)) {
$namespace = $GLOBALS['config']['wmi']['namespace'];
}
if (isset($override) && is_array($override)) {
$hostname = $override['hostname'];
$domain = $override['domain'];
$username = $override['username'];
$password = $override['password'];
} else {
$hostname = $GLOBALS['device']['hostname'];
$domain = $GLOBALS['config']['wmi']['domain'];
$username = $GLOBALS['config']['wmi']['user'];
$password = $GLOBALS['config']['wmi']['pass'];
}
$options = "--user=" . $username . " ";
if (empty($password)) {
$options .= "--no-pass ";
} else {
$options .= "--password=" . $password . " ";
}
if (!empty($domain)) {
$options .= "--workgroup=" . $domain . " ";
}
if (empty($GLOBALS['config']['wmi']['delimiter'])) {
$options .= "--delimiter=## ";
} else {
$options .= "--delimiter=" . $GLOBALS['config']['wmi']['delimiter'] . " ";
}
if (empty($namespace)) {
$options .= "--namespace='root\\CIMV2' ";
} else {
$options .= "--namespace='" . $namespace . "' ";
}
if ($GLOBALS['debug']) {
$options .= "-d2 ";
}
$options .= "//" . $hostname;
$cmd = $GLOBALS['config']['wmic'] . " " . $options . " " . "\"" . $wql . "\"";
return external_exec($cmd);
}
示例4: gethostbyaddr6
if (isset($_SESSION['cache']['response_' . $vars['entity_type'] . '_' . $ip])) {
echo $_SESSION['cache']['response_' . $vars['entity_type'] . '_' . $ip];
//echo '<h2>CACHED!</h2>';
exit;
}
$response = '';
$reverse_dns = gethostbyaddr6($ip);
if ($reverse_dns) {
$response .= '<h4>' . $reverse_dns . '</h4><hr />' . PHP_EOL;
}
// WHOIS
if (is_executable($config['whois']) && !isset($config['http_proxy'])) {
// Use direct whois cmd query (preferred)
// NOTE, for now not tested and not supported for KRNIC, ie: 202.30.50.0, 2001:02B8:00A2::
$cmd = $config['whois'] . ' ' . $ip;
$whois = external_exec($cmd);
$multi_whois = explode('# start', $whois);
// Some time whois return multiple (ie: whois 8.8.8.8), than use last
if (count($multi_whois) > 1) {
$whois = array_pop($multi_whois);
}
$org = 0;
foreach (explode("\n", $whois) as $line) {
if (preg_match('/^(\\w[\\w\\s\\-\\/]+):.*$/', $line, $matches)) {
if (in_array($matches[1], array('Ref', 'source', 'nic-hdl-br'))) {
if ($org === 1) {
$response .= PHP_EOL;
$org++;
continue;
} else {
break;
示例5: get_pid_info
/**
* Get information about process by it identifier (pid)
*
* @param int $pid The process identifier.
* @param boolean $stats If true, additionally show cpu/memory stats
* @return array Array with information about process, If process not found, return FALSE
*/
function get_pid_info($pid, $stats = FALSE)
{
$pid = intval($pid);
if ($pid < 1) {
print_debug("Incorrect PID passed");
//trigger_error("PID ".$pid." doesn't exists", E_USER_WARNING);
return FALSE;
}
if ($stats) {
// Add CPU/Mem stats
$options = 'pid,ppid,uid,gid,pcpu,pmem,vsz,rss,tty,stat,time,lstart,args';
} else {
$options = 'pid,ppid,uid,gid,tty,stat,time,lstart,args';
}
$ps = external_exec('/bin/ps -ww -o ' . $options . ' -p ' . $pid);
$ps = explode("\n", rtrim($ps));
if ($GLOBALS['exec_status']['exitcode'] === 127) {
print_debug("/bin/ps command not found, not possible to get process info.");
return NULL;
} else {
if ($GLOBALS['exec_status']['exitcode'] !== 0 || count($ps) < 2) {
print_debug("PID " . $pid . " doesn't exists");
//trigger_error("PID ".$pid." doesn't exists", E_USER_WARNING);
return FALSE;
}
}
// " PID PPID UID GID %CPU %MEM VSZ RSS TT STAT TIME STARTED COMMAND"
// "14675 10250 1000 1000 0.0 0.2 194640 11240 pts/4 S+ 00:00:00 Mon Mar 21 14:48:08 2016 php ./test_pid.php"
//
// " PID PPID UID GID TT STAT TIME STARTED COMMAND"
// "14675 10250 1000 1000 pts/4 S+ 00:00:00 Mon Mar 21 14:48:08 2016 php ./test_pid.php"
//print_vars($ps);
$timezone = get_timezone();
// Get system timezone info, for correct started time conversion
// Parse output
$keys = preg_split("/\\s+/", $ps[0], -1, PREG_SPLIT_NO_EMPTY);
$entries = preg_split("/\\s+/", $ps[1], count($keys) - 1, PREG_SPLIT_NO_EMPTY);
$started = preg_split("/\\s+/", array_pop($entries), 6, PREG_SPLIT_NO_EMPTY);
$command = array_pop($started);
$started[] = str_replace(':', '', $timezone['system']);
// Add system TZ to started time
$started_rfc = array_shift($started) . ', ';
$started_rfc .= implode(' ', $started);
// Reimplode and convert to RFC2822 started date 'Sun, Mar 20 18:01:53 2016 +0300'
$entries[] = $started_rfc;
$entries[] = $command;
// Readd command
//print_vars($entries);
//print_vars($started);
$pid_info = array();
foreach ($keys as $i => $key) {
$pid_info[$key] = $entries[$i];
}
$pid_info['STARTED_UNIX'] = strtotime($pid_info['STARTED']);
//print_vars($pid_info);
return $pid_info;
}
示例6: snmp_translate
function snmp_translate($oid, $module, $mibdir = null)
{
if ($module !== 'all') {
$oid = "{$module}::{$oid}";
}
$cmd = 'snmptranslate' . mibdir($mibdir);
$cmd .= " -m {$module} {$oid}";
// load all the MIBs looking for our object
$cmd .= ' 2>/dev/null';
// ignore invalid MIBs
$lines = preg_split('/\\n+/', external_exec($cmd));
if (empty($lines)) {
d_echo("No results from snmptranslate\n");
return null;
}
$matches = array();
if (!preg_match('/(.*)::(.*)/', $lines[0], $matches)) {
d_echo("This doesn't look like a MIB: {$lines['0']}\n");
return null;
}
d_echo("SNMP translated: {$module}::{$oid} -> {$matches['1']}::{$matches['2']}\n");
return array($matches[1], $matches[2]);
}
示例7: testExternalExec
/**
* @dataProvider providerExternalExec
* @group exec
*/
public function testExternalExec($cmd, $timeout, $result)
{
$test = external_exec($cmd, $timeout);
unset($GLOBALS['exec_status']['runtime']);
$this->assertSame($result, $GLOBALS['exec_status']);
}
示例8: dbFetchRows
<?php
$ipmi_rows = dbFetchRows("SELECT * FROM sensors WHERE device_id = ? AND poller_type='ipmi'", array($device['device_id']));
d_echo($ipmi_rows);
if ($ipmi['host'] = get_dev_attrib($device, 'ipmi_hostname')) {
$ipmi['user'] = get_dev_attrib($device, 'ipmi_username');
$ipmi['password'] = get_dev_attrib($device, 'ipmi_password');
$ipmi['type'] = get_dev_attrib($device, 'ipmi_type');
echo 'Fetching IPMI sensor data...';
if ($config['own_hostname'] != $device['hostname'] || $ipmi['host'] != 'localhost') {
$remote = ' -H ' . $ipmi['host'] . ' -U ' . $ipmi['user'] . ' -P ' . $ipmi['password'];
}
$results = external_exec($config['ipmitool'] . ' -I ' . $ipmi['type'] . ' -c ' . $remote . ' sdr 2>/dev/null');
d_echo($results);
echo " done.\n";
foreach (explode("\n", $results) as $row) {
list($desc, $value, $type, $status) = explode(',', $row);
$ipmi_sensor[$desc][$config['ipmi_unit'][$type]]['value'] = $value;
$ipmi_sensor[$desc][$config['ipmi_unit'][$type]]['unit'] = $type;
}
foreach ($ipmi_rows as $ipmisensors) {
echo 'Updating IPMI sensor ' . $ipmisensors['sensor_descr'] . '... ';
$sensor = $ipmi_sensor[$ipmisensors['sensor_descr']][$ipmisensors['sensor_class']]['value'];
$unit = $ipmi_sensor[$ipmisensors['sensor_descr']][$ipmisensors['sensor_class']]['unit'];
echo $sensor . " {$unit}\n";
$rrd_name = get_sensor_rrd_name($device, $ipmisensors);
$rrd_def = 'DS:sensor:GAUGE:600:-20000:20000';
$fields = array('sensor' => $sensor);
$tags = array('sensor_class' => $sensor['sensor_class'], 'sensor_type' => $sensor['sensor_type'], 'sensor_descr' => $sensor['sensor_descr'], 'sensor_index' => $sensor['sensor_index'], 'rrd_name' => $rrd_name, 'rrd_def' => $rrd_def);
data_update($device, 'ipmi', $tags, $fields);
// FIXME warnings in event & mail not done here yet!
示例9: escapeshellarg
$cmd_diff = $config['svn'] . ' diff -r' . $rev['prev'] . ':' . $rev['curr'] . ' ' . $cmd_file;
$prev_name = 'r' . $rev['prev'];
break;
case 'git':
$cmd_cat = $config['git'] . ' --git-dir=' . $git_dir . ' --work-tree=' . $cmd_dir . ' show ' . $rev['curr'] . ':' . escapeshellarg(basename($device_config_file));
$cmd_diff = $config['git'] . ' --git-dir=' . $git_dir . ' --work-tree=' . $cmd_dir . ' diff ' . $rev['prev'] . ' ' . $rev['curr'] . ' ' . $cmd_file;
$prev_name = $rev['prev'];
}
$device_config = external_exec($cmd_cat);
if (!isset($rev['prev'])) {
$diff = '';
if (empty($device_config)) {
$device_config = '# 初始化设备添加.';
}
} else {
$diff = external_exec($cmd_diff);
if (!$diff) {
$diff = '无差异';
}
}
} else {
$fh = fopen($device_config_file, 'r') or die("无法打开文件");
$device_config = fread($fh, filesize($device_config_file));
fclose($fh);
}
if ($config['rancid_ignorecomments']) {
if (isset($config['os'][$device['os']]['comments'])) {
$comments_pattern = $config['os'][$device['os']]['comments'];
} else {
// Default pattern
$comments_pattern = '/^\\s*#/';
示例10: snmpget_cache_multi
function snmpget_cache_multi($device, $oids, $array, $mib = NULL, $mibdir = NULL, $flags = OBS_QUOTES_TRIM)
{
global $snmp_stats, $mibs_loaded;
$output = 'QUs';
$numeric_oids = is_flag_set(OBS_SNMP_NUMERIC, $flags);
// Numeric oids, do not parse oid part
if (is_flag_set(OBS_SNMP_NUMERIC_INDEX, $flags)) {
$output .= 'b';
}
if ($numeric_oids) {
$output .= 'n';
}
if (is_flag_set(OBS_SNMP_ENUM, $flags)) {
$output .= 'e';
}
if (is_flag_set(OBS_SNMP_HEX, $flags)) {
$output .= 'x';
}
$options = "-O{$output}";
if (is_array($oids)) {
$data = '';
$oid_chunks = array_chunk($oids, 16);
$GLOBALS['snmp_status'] = FALSE;
foreach ($oid_chunks as $oid_chunk) {
$oid_text = implode($oid_chunk, ' ');
$cmd = snmp_command('snmpget', $device, $oid_text, $options, $mib, $mibdir, $flags);
$start = microtime(TRUE);
$this_data = trim(external_exec($cmd));
$runtime = microtime(TRUE) - $start;
$GLOBALS['snmp_status'] = $GLOBALS['exec_status']['exitcode'] === 0 ? TRUE : $GLOBALS['snmp_status'];
snmp_log_errors('snmpget', $device, $oid_text, $options, $mib, $mibdir);
$data .= $this_data . "\n";
$GLOBALS['snmp_stats']['snmpget']['count']++;
$GLOBALS['snmp_stats']['snmpget']['time'] += $runtime;
}
} else {
$cmd = snmp_command('snmpget', $device, $oids, $options, $mib, $mibdir, $flags);
$start = microtime(TRUE);
$data = trim(external_exec($cmd));
$runtime = microtime(TRUE) - $start;
$GLOBALS['snmp_status'] = $GLOBALS['exec_status']['exitcode'] === 0 ? TRUE : FALSE;
snmp_log_errors('snmpget', $device, $oids, $options, $mib, $mibdir);
$GLOBALS['snmp_stats']['snmpget']['count']++;
$GLOBALS['snmp_stats']['snmpget']['time'] += $runtime;
}
foreach (explode("\n", $data) as $entry) {
list($oid, $value) = explode('=', $entry, 2);
$oid = trim($oid);
$value = trim_quotes($value, $flags);
if (strpos($value, 'Wrong Type') === 0) {
// Remove Wrong Type string
$value = preg_replace('/Wrong Type .*?: (.*)/s', '\\1', $value);
}
// For numeric oids do not split oid and index part
if ($numeric_oids && isset($oid[0]) && is_valid_snmp_value($value)) {
$array[$oid] = $value;
continue;
}
list($oid, $index) = explode('.', $oid, 2);
if (isset($oid[0]) && isset($index) && is_valid_snmp_value($value)) {
$array[$index][$oid] = $value;
}
}
if (empty($array)) {
$GLOBALS['snmp_status'] = FALSE;
snmp_log_errors('snmpget', $device, $oids, $options, $mib, $mibdir);
}
if (OBS_DEBUG) {
print_message('SNMP STATUS[' . ($GLOBALS['snmp_status'] ? '%gTRUE' : '%rFALSE') . '%n]', 'color');
}
return $array;
}
示例11: rrdtool_file_info
function rrdtool_file_info($file)
{
global $config;
$info = array('filename' => $file);
$rrd = array_filter(explode(PHP_EOL, external_exec($config['rrdtool'] . ' info ' . $file)), 'strlen');
if ($rrd) {
foreach ($rrd as $s) {
$p = strpos($s, '=');
if ($p === false) {
continue;
}
$key = trim(substr($s, 0, $p));
$value = trim(substr($s, $p + 1));
if (strncmp($key, 'ds[', 3) == 0) {
/* DS definition */
$p = strpos($key, ']');
$ds = substr($key, 3, $p - 3);
if (!isset($info['DS'])) {
$info['DS'] = array();
}
$ds_key = substr($key, $p + 2);
if (strpos($ds_key, '[') === false) {
if (!isset($info['DS']["{$ds}"])) {
$info['DS']["{$ds}"] = array();
}
$info['DS']["{$ds}"]["{$ds_key}"] = rrd_strip_quotes($value);
}
} else {
if (strncmp($key, 'rra[', 4) == 0) {
/* RRD definition */
$p = strpos($key, ']');
$rra = substr($key, 4, $p - 4);
if (!isset($info['RRA'])) {
$info['RRA'] = array();
}
$rra_key = substr($key, $p + 2);
if (strpos($rra_key, '[') === false) {
if (!isset($info['RRA']["{$rra}"])) {
$info['RRA']["{$rra}"] = array();
}
$info['RRA']["{$rra}"]["{$rra_key}"] = rrd_strip_quotes($value);
}
} else {
if (strpos($key, '[') === false) {
$info[$key] = rrd_strip_quotes($value);
}
}
}
}
}
return $info;
}
示例12: foreach
<?php
/**
* Observium
*
* This file is part of Observium.
*
* @package observium
* @subpackage alerting
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2016 Observium Limited
*
*/
// Export all tags for external program usage
foreach (array_keys($message_tags) as $key) {
putenv("OBSERVIUM_{$key}=" . $message_tags[$key]);
}
// Execute given script
external_exec($endpoint['script']);
// If script's exit code is 0, success. Otherwise we mark it as failed.
if ($GLOBALS['exec_status']['exitcode'] == 0) {
$notify_status['success'] = TRUE;
} else {
$notify_status['success'] = FALSE;
}
// Clean out all set environment variable we set before execution
foreach (array_keys($message_tags) as $key) {
putenv("OBSERVIUM_{$key}");
}
unset($message, $output, $exitcode);
// EOF
示例13: dbFetchRows
<?php
$ipmi_rows = dbFetchRows("SELECT * FROM sensors WHERE device_id = ? AND poller_type='ipmi'", array($device['device_id']));
if ($ipmi['host'] = get_dev_attrib($device, 'ipmi_hostname')) {
$ipmi['user'] = get_dev_attrib($device, 'ipmi_username');
$ipmi['password'] = get_dev_attrib($device, 'ipmi_password');
echo "Fetching IPMI sensor data...";
if ($config['own_hostname'] != $device['hostname'] || $ipmi['host'] != 'localhost') {
$remote = " -H " . $ipmi['host'] . " -U " . $ipmi['user'] . " -P " . $ipmi['password'];
}
$results = external_exec($config['ipmitool'] . " -c " . $remote . " sdr 2>/dev/null");
echo " done.\n";
foreach (explode("\n", $results) as $row) {
list($desc, $value, $type, $status) = explode(',', $row);
$ipmi_sensor[$desc][$config['ipmi_unit'][$type]]['value'] = $value;
$ipmi_sensor[$desc][$config['ipmi_unit'][$type]]['unit'] = $type;
}
foreach ($ipmi_rows as $ipmisensors) {
echo "Updating IPMI sensor " . $ipmisensors['sensor_descr'] . "... ";
$sensor = $ipmi_sensor[$ipmisensors['sensor_descr']][$ipmisensors['sensor_class']]['value'];
$unit = $ipmi_sensor[$ipmisensors['sensor_descr']][$ipmisensors['sensor_class']]['unit'];
$rrd_file = get_sensor_rrd($device, $ipmisensors);
if (is_file($old_rrd_file)) {
rename($old_rrd_file, $rrd_file);
}
if (!is_file($rrd_file)) {
rrdtool_create($rrd_file, "--step 300 \\\n DS:sensor:GAUGE:600:-20000:20000 " . $config['rrd_rra']);
}
echo $sensor . " {$unit}\n";
rrdtool_update($rrd_file, "N:{$sensor}");
// FIXME warnings in event & mail not done here yet!
示例14: snmp_walk
function snmp_walk($device, $oid, $options = NULL, $mib = NULL, $mibdir = NULL, $strip_quotes = 1)
{
global $runtime_stats;
$cmd = snmp_command('snmpwalk', $device, $oid, $options, $mib, $mibdir);
$data = trim(external_exec($cmd));
$GLOBALS['snmp_status'] = $GLOBALS['exec_status']['exitcode'] === 0 ? TRUE : FALSE;
if ($strip_quotes) {
$data = str_replace("\"", "", $data);
}
if (is_string($data) && preg_match("/No Such (Object|Instance)/i", $data)) {
$data = FALSE;
$GLOBALS['snmp_status'] = FALSE;
} else {
if (preg_match('/No more variables left in this MIB View \\(It is past the end of the MIB tree\\)$/', $data) || preg_match('/End of MIB$/', $data)) {
# Bit ugly :-(
$d_ex = explode("\n", $data);
$d_ex_count = count($d_ex);
if ($d_ex_count > 1) {
// Remove last line
unset($d_ex[$d_ex_count - 1]);
$data = implode("\n", $d_ex);
} else {
$data = FALSE;
$GLOBALS['snmp_status'] = FALSE;
}
}
}
$runtime_stats['snmpwalk']++;
if (OBS_DEBUG) {
print_message('SNMP_STATUS[' . ($GLOBALS['snmp_status'] ? '%gTRUE' : '%rFALSE') . '%n]', 'color');
}
return $data;
}
示例15: dbFetchCell
$stats['ospf'] = dbFetchCell("SELECT COUNT(*) FROM `ospf_ports`");
$stats['eigrp'] = dbFetchCell("SELECT COUNT(*) FROM `eigrp_ports`");
$stats['ipsec_tunnels'] = dbFetchCell("SELECT COUNT(*) FROM `ipsec_tunnels`");
$stats['munin_plugins'] = dbFetchCell("SELECT COUNT(*) FROM `munin_plugins`");
$stats['pseudowires'] = dbFetchCell("SELECT COUNT(*) FROM `pseudowires`");
$stats['vrfs'] = dbFetchCell("SELECT COUNT(*) FROM `vrfs`");
$stats['vminfo'] = dbFetchCell("SELECT COUNT(*) FROM `vminfo`");
$stats['users'] = dbFetchCell("SELECT COUNT(*) FROM `users`");
$stats['bills'] = dbFetchCell("SELECT COUNT(*) FROM `bills`");
$stats['alerts'] = dbFetchCell("SELECT COUNT(*) FROM `alert_table`");
$stats['alert_tests'] = dbFetchCell("SELECT COUNT(*) FROM `alert_tests`");
$stats['groups'] = dbFetchCell("SELECT COUNT(*) FROM `groups`");
$stats['group_members'] = dbFetchCell("SELECT COUNT(*) FROM `group_table`");
$stats['poller_time'] = dbFetchCell("SELECT SUM(`last_polled_timetaken`) FROM devices");
$stats['php_version'] = phpversion();
$os_text = external_exec("DISTROFORMAT=export " . $config['install_dir'] . "/scripts/distro");
foreach (explode("\n", $os_text) as $part) {
list($a, $b) = explode("=", $part);
$stats['os'][$a] = $b;
}
// sysObjectID for Generic devices
foreach (dbFetchRows("SELECT `sysObjectID`, COUNT(*) AS `count` FROM `devices` WHERE `os` = 'generic' GROUP BY `sysObjectID`") as $data) {
$stats['generics'][$data['sysObjectID']] = $data['count'];
}
// Per-OS counts
foreach (dbFetchRows("SELECT COUNT(*) AS `count`, `os` FROM `devices` GROUP BY `os`") as $data) {
$stats['devicetypes'][$data['os']] = $data['count'];
}
// Per-type counts
foreach (dbFetchRows("SELECT COUNT(*) AS `count`, `type` FROM `devices` GROUP BY `type`") as $data) {
$stats['types'][$data['type']] = $data['count'];