function system_information() { global $mysqli, $server, $redis_server, $mqtt_server; $result = $mysqli->query("select now() as datetime, time_format(timediff(now(),convert_tz(now(),@@session.time_zone,'+00:00')),'%H:%i') AS timezone"); $db = $result->fetch_array(); @(list($system, $host, $kernel) = preg_split('/[\\s,]+/', php_uname('a'), 5)); @exec('ps ax | grep feedwriter.php | grep -v grep', $feedwriterproc); $meminfo = false; if (@is_readable('/proc/meminfo')) { $data = explode("\n", file_get_contents("/proc/meminfo")); $meminfo = array(); foreach ($data as $line) { if (strpos($line, ':') !== false) { list($key, $val) = explode(":", $line); $meminfo[$key] = 1024 * floatval(trim(str_replace(' kB', '', $val))); } } } $emoncms_modules = ""; $emoncmsModulesPath = substr($_SERVER['SCRIPT_FILENAME'], 0, strrpos($_SERVER['SCRIPT_FILENAME'], '/')) . '/Modules'; // Set the Modules path $emoncmsModuleFolders = glob("{$emoncmsModulesPath}/*", GLOB_ONLYDIR); // Use glob to get all the folder names only foreach ($emoncmsModuleFolders as $emoncmsModuleFolder) { // loop through the folders if ($emoncms_modules != "") { $emoncms_modules .= " "; } $emoncms_modules .= str_replace($emoncmsModulesPath . "/", '', $emoncmsModuleFolder); } return array('date' => date('Y-m-d H:i:s T'), 'system' => $system, 'kernel' => $kernel, 'host' => $host, 'ip' => gethostbyname($host), 'uptime' => @exec('uptime'), 'http_server' => $_SERVER['SERVER_SOFTWARE'], 'php' => PHP_VERSION, 'zend' => function_exists('zend_version') ? zend_version() : 'n/a', 'db_server' => $server, 'db_ip' => gethostbyname($server), 'db_version' => 'MySQL ' . $mysqli->server_info, 'db_stat' => $mysqli->stat(), 'db_date' => $db['datetime'] . " (UTC " . $db['timezone'] . ")", 'redis_server' => $redis_server['host'] . ":" . $redis_server['port'], 'redis_ip' => gethostbyname($redis_server['host']), 'feedwriter' => !empty($feedwriterproc), 'mqtt_server' => $mqtt_server['host'], 'mqtt_ip' => gethostbyname($mqtt_server['host']), 'mqtt_port' => $mqtt_server['port'], 'hostbyaddress' => @gethostbyaddr(gethostbyname($host)), 'http_proto' => $_SERVER['SERVER_PROTOCOL'], 'http_mode' => $_SERVER['GATEWAY_INTERFACE'], 'http_port' => $_SERVER['SERVER_PORT'], 'php_modules' => get_loaded_extensions(), 'mem_info' => $meminfo, 'partitions' => disk_list(), 'emoncms_modules' => $emoncms_modules); }
function system_information() { global $mysqli, $server, $redis_server, $mqtt_server; $result = $mysqli->query("select now() as datetime, time_format(timediff(now(),convert_tz(now(),@@session.time_zone,'+00:00')),'%H:%i') AS timezone"); $db = $result->fetch_array(); @(list($system, $host, $kernel) = preg_split('/[\\s,]+/', php_uname('a'), 5)); @exec('ps ax | grep feedwriter.php | grep -v grep', $feedwriterproc); if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { $meminfo = array(); } else { //Only do this on NON-Windows Platforms $data = explode("\n", file_get_contents("/proc/meminfo")); $meminfo = array(); foreach ($data as $line) { if (strpos($line, ':') !== false) { list($key, $val) = explode(":", $line); $meminfo[$key] = 1024 * floatval(trim(str_replace(' kB', '', $val))); } } } return array('date' => date('Y-m-d H:i:s T'), 'system' => $system, 'kernel' => $kernel, 'host' => $host, 'ip' => gethostbyname($host), 'uptime' => @exec('uptime'), 'http_server' => $_SERVER['SERVER_SOFTWARE'], 'php' => PHP_VERSION, 'zend' => function_exists('zend_version') ? zend_version() : 'n/a', 'db_server' => $server, 'db_ip' => gethostbyname($server), 'db_version' => 'MySQL ' . $mysqli->server_info, 'db_stat' => $mysqli->stat(), 'db_date' => $db['datetime'] . " (UTC " . $db['timezone'] . ")", 'redis_server' => $redis_server['host'] . ":" . $redis_server['port'], 'redis_ip' => gethostbyname($redis_server['host']), 'feedwriter' => !empty($feedwriterproc), 'mqtt_server' => $mqtt_server['host'], 'mqtt_ip' => gethostbyname($mqtt_server['host']), 'mqtt_port' => $mqtt_server['port'], 'hostbyaddress' => @gethostbyaddr(gethostbyname($host)), 'http_proto' => $_SERVER['SERVER_PROTOCOL'], 'http_mode' => $_SERVER['GATEWAY_INTERFACE'], 'http_port' => $_SERVER['SERVER_PORT'], 'php_modules' => get_loaded_extensions(), 'mem_info' => $meminfo, 'partitions' => disk_list()); }
<?php /*------------------------------------------------------------------------------ BerryIO Disk Status Command ------------------------------------------------------------------------------*/ $title = 'Disk Status'; // Load the disk functions require_once FUNCTIONS . 'disk.php'; // Load the system settings settings('system', 1); // Get the disk partition details if (($page['disk_partitions'] = disk_list()) === FALSE) { $content .= message('ERROR: Unable retrieve information on your disks'); return FALSE; } // Display status page $GLOBALS['JAVASCRIPT']['common'] = 'common'; $GLOBALS['JAVASCRIPT']['updateDisk'] = 'updateDisk'; $GLOBALS['JAVASCRIPT_DATA']['updateDisk'] = $page; require_once FUNCTIONS . 'graph.php'; $content .= view('pages/disk_status', $page);