Viewing file: class.GetSensord.php (1.78 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* * This file is part of Linfo (c) 2010 Joseph Gillotti. * * Linfo is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Linfo is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Linfo. If not, see <http://www.gnu.org/licenses/>. * */
defined('IN_INFO') or exit;
/* * Exception */ class GetSensordException extends Exception{}
/* * Main class */
class GetSensord { public function work() { $temps = $this->parseSysLog(); return $temps; }
private function parseSysLog() {
/* * For parsing the syslog looking for sensord entries * POTENTIALLY BUGGY -- only tested on debian/ubuntu flavored syslogs * Also slow as balls as it parses the entire syslog instead of * using something like tail */ $file = '/var/log/syslog'; if (!is_file($file) || !is_readable($file)) { return array(); } $devices = array(); foreach (getLines($file) as $line) { if (preg_match('/\w+\s*\d+ \d{2}:\d{2}:\d{2} \w+ sensord:\s*(.+):\s*(.+)/i', trim($line), $match) == 1) { // Replace current record of dev with updated temp $devices[$match[1]] = $match[2]; } } $return = array(); foreach ($devices as $dev => $stat) $return[] = array( 'path' => 'N/A', // These likely won't have paths 'name' => $dev, 'temp' => $stat, 'unit' => '' // Usually included in above ); return $return; } }
|