[Phpsysinfo-subversion] SF.net SVN: phpsysinfo:[599] trunk/includes
Brought to you by:
namiltd
From: <na...@us...> - 2012-07-08 09:34:05
|
Revision: 599 http://phpsysinfo.svn.sourceforge.net/phpsysinfo/?rev=599&view=rev Author: namiltd Date: 2012-07-08 09:33:59 +0000 (Sun, 08 Jul 2012) Log Message: ----------- Modified Paths: -------------- trunk/includes/class.Parser.inc.php trunk/includes/os/class.Minix.inc.php Modified: trunk/includes/class.Parser.inc.php =================================================================== --- trunk/includes/class.Parser.inc.php 2012-07-05 23:44:48 UTC (rev 598) +++ trunk/includes/class.Parser.inc.php 2012-07-08 09:33:59 UTC (rev 599) @@ -36,7 +36,11 @@ if (CommonFunctions::executeProgram("lspci", "", $strBuf, PSI_DEBUG)) { $arrLines = preg_split("/\n/", $strBuf, -1, PREG_SPLIT_NO_EMPTY); foreach ($arrLines as $strLine) { - list($strAddr, $strName) = preg_split('/ /', trim($strLine), 2); + $arrParams = preg_split('/ /', trim($strLine), 2); + if (count($arrParams) == 2) + $strName = $arrParams[1]; + else + $strName = "unknown"; $strName = preg_replace('/\(.*\)/', '', $strName); $dev = new HWDevice(); $dev->setName($strName); Modified: trunk/includes/os/class.Minix.inc.php =================================================================== --- trunk/includes/os/class.Minix.inc.php 2012-07-05 23:44:48 UTC (rev 598) +++ trunk/includes/os/class.Minix.inc.php 2012-07-08 09:33:59 UTC (rev 599) @@ -27,74 +27,86 @@ class Minix extends OS { /** - * define the regexp for log parser + * content of the syslog + * + * @var array */ + private $_dmesg = array(); + + /** + * call parent constructor + */ public function __construct() { - parent::__construct(); $this->error->addError("WARN", "The Minix version of phpSysInfo is work in progress, some things currently don't work"); -// $this->setCPURegExp1("^cpu(.*)\, (.*) MHz"); -// $this->setCPURegExp2("^(.*) at scsibus.*: <(.*)> .*"); -// $this->setSCSIRegExp2("^(da[0-9]): (.*)MB "); -// $this->setPCIRegExp1("/(.*): <(.*)>(.*) (pci|legacypci)[0-9]$/"); -// $this->setPCIRegExp2("/(.*): <(.*)>.* at [0-9\.]+$/"); } /** - * get network information + * read /var/log/messages, but only if we haven't already * * @return array */ - private function _network() + protected function readdmesg() { -/* CommonFunctions::executeProgram('netstat', '-nbdi | cut -c1-25,44- | grep "^[a-z]*[0-9][ \t].*Link"', $netstat_b); - CommonFunctions::executeProgram('netstat', '-ndi | cut -c1-25,44- | grep "^[a-z]*[0-9][ \t].*Link"', $netstat_n); - $lines_b = preg_split("/\n/", $netstat_b, -1, PREG_SPLIT_NO_EMPTY); - $lines_n = preg_split("/\n/", $netstat_n, -1, PREG_SPLIT_NO_EMPTY); - for ($i = 0, $max = sizeof($lines_b); $i < $max; $i++) { - $ar_buf_b = preg_split("/\s+/", $lines_b[$i]); - $ar_buf_n = preg_split("/\s+/", $lines_n[$i]); - if (! empty($ar_buf_b[0]) && ! empty($ar_buf_n[3])) { - $dev = new NetDevice(); - $dev->setName($ar_buf_b[0]); - $dev->setTxBytes($ar_buf_b[8]); - $dev->setRxBytes($ar_buf_b[5]); - $dev->setErrors($ar_buf_n[4] + $ar_buf_n[6]); - $dev->setDrops($ar_buf_n[8]); - $this->sys->setNetDevices($dev); + if (count($this->_dmesg) === 0) { + if (CommonFunctions::rfts('/var/log/messages', $buf)) { + $parts = preg_split("/kernel: APIC/", $buf, -1, PREG_SPLIT_NO_EMPTY); + $this->_dmesg = preg_split("/\n/", $parts[count($parts) - 1], -1, PREG_SPLIT_NO_EMPTY); } } -*/ } + return $this->_dmesg; + } /** - * get the ide information + * get the cpu information * * @return array */ - protected function ide() + protected function _cpuinfo() { -/* foreach ($this->readdmesg() as $line) { - if (preg_match('/^(.*): (.*) <(.*)> at (ata[0-9]\-(.*)) (.*)/', $line, $ar_buf)) { - $dev = new HWDevice(); - $dev->setName($ar_buf[1]); - if (!preg_match("/^acd[0-9](.*)/", $ar_buf[1])) { - $dev->setCapacity($ar_buf[2] * 1024); - } - $this->sys->setIdeDevices($dev); - } + foreach ($this->readdmesg() as $line) { + if (preg_match('/kernel: (CPU .*) freq (.*) MHz/', $line, $ar_buf)) { + $dev = new CpuDevice(); + $dev->setModel($ar_buf[1]); + $dev->setCpuSpeed($ar_buf[2]); + $this->sys->setCpus($dev); + } } -*/ } - + } + /** + * PCI devices + * get the pci device information out of dmesg + * + * @return void + */ + protected function _pci() + { + if (is_array($results = Parser::lspci())) { /* chmod 4755 /usr/bin/lspci */ + foreach ($results as $dev) { + $this->sys->setPciDevices($dev); + } + } + } + + /** * Minix Version * * @return void */ private function _kernel() { + foreach ($this->readdmesg() as $line) { + if (preg_match('/kernel: MINIX (.*) \((branch.*)\)/', $line, $ar_buf)) { + $branch = $ar_buf[2]; + } + } if (CommonFunctions::executeProgram('uname', '-srvm', $ret)) { - $this->sys->setKernel($ret); + if (isset($branch)) + $this->sys->setKernel($ret.' ('.$branch.')'); + else + $this->sys->setKernel($ret); } } @@ -146,6 +158,7 @@ } } } + /** * Number of Users * @@ -159,6 +172,7 @@ } } } + /** * Virtual Host Name * @@ -208,7 +222,7 @@ $this->sys->setDiskDevices($dev); } } - + /** * get the information * @@ -216,7 +230,6 @@ */ function build() { -// parent::build(); $this->_hostname(); $this->_ip(); $this->_distro(); @@ -224,8 +237,8 @@ $this->_uptime(); $this->_users(); $this->_loadavg(); - $this->_network(); - $this->_uptime(); + $this->_pci(); + $this->_cpuinfo(); $this->_filesystems(); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |