#!/usr/bin/php $cpu) if ($name != 'cpu') CpuRRD::update($name, $cpu); ProcRRD::update("proc", $arr['sys']); LavgRRD::update("load", $arr['load']); MemRRD::update("mem", $arr['mem'][0]); SwapRRD::update("swap", $arr['mem'][1]); UpRRD::update('uptime', $arr['up']); foreach ($arr['iface'] as $name => $iface) IfaceRRD::update("if_".$name, $iface[0], $iface[1]); foreach ($arr['disks'] as $name => $disk) { FsRRD::update('fs_'.$name, $disk); DiskRRD::update('disk_'.$name, $disk[3]); } if (isset($arr['mysql'])) MysqlRRD::update("mysql", $arr['mysql']); if (isset($arr['httpd'])) HttpdRRD::update("httpd", $arr['httpd']); if (isset($arr['named'])) NamedRRD::update("named", $arr['named']); if (isset($arr['squid'])) SquidRRD::update("squid", $arr['squid']); if (isset($arr['conntrack'])) { ConntrackRRD::update("conntrack", $arr['conntrack']); TcpRRD::update("tcp", $arr['conntrack']['stat']); } if (isset($arr['rtstat'])) RtStatRRD::update("rtstat", $arr['rtstat']); if (isset($arr['ctstat'])) CtStatRRD::update("ctstat", $arr['ctstat']); } function request_all($host, $port) { $handle = fsockopen($host, $port, $errno, $errstr, 10); if (!$handle) { echo "$errstr ($errno)"; die(); } $buffer = ""; while (!feof($handle)) $buffer .= fgets($handle, 4096); fclose($handle); return unserialize(trim($buffer)); } if (!isset($_SERVER['argv'][1])) $_SERVER['argv'][1] = "local"; switch ($_SERVER['argv'][1]) { case 'local': parse_all(get_all()); break; case 'server': echo serialize(get_all())."\n"; break; case 'client': if (!isset($_SERVER['argv'][2]) || !isset($_SERVER['argv'][3])) break; parse_all(request_all($_SERVER['argv'][2], $_SERVER['argv'][3])); break; case 'test': print_r(get_all()); break; } ?>