📄 class.linux.inc.php
字号:
unset($results[$file]['capacity']); } fclose($fd); } } } closedir($handle); asort($results); return $results; } function scsi () { $results = array(); $dev_vendor = ''; $dev_model = ''; $dev_rev = ''; $dev_type = ''; $s = 1; if ($fd = fopen('/proc/scsi/scsi', 'r')) { while ($buf = fgets($fd, 4096)) { if (preg_match('/Vendor/', $buf)) { preg_match('/Vendor: (.*) Model: (.*) Rev: (.*)/i', $buf, $dev); list($key, $value) = split(': ', $buf, 2); $dev_str = $value; $get_type = 1; continue; } if ($get_type) { preg_match('/Type:\s+(\S+)/i', $buf, $dev_type); $results[$s]['model'] = "$dev[1] $dev[2] ($dev_type[1])"; $results[$s]['media'] = "Hard Disk"; $s++; $get_type = 0; } } } asort($results); return $results; } function usb () { $results = array(); $devstring = 0; $devnum = -1; if ($fd = fopen('/proc/bus/usb/devices', 'r')) { while ($buf = fgets($fd, 4096)) { if (preg_match('/^T/', $buf)) { $devnum += 1; } if (preg_match('/^S/', $buf)) { $devstring = 1; } if ($devstring) { list($key, $value) = split(': ', $buf, 2); list($key, $value2) = split('=', $value, 2); $results[$devnum] .= " " . trim($value2); $devstring = 0; } } } return $results; } function sbus () { $results = array(); $_results[0] = ""; // TODO. Nothing here yet. Move along. $results = $_results; return $results; } function network () { $results = array(); if ($fd = fopen('/proc/net/dev', 'r')) { while ($buf = fgets($fd, 4096)) { if (preg_match('/:/', $buf)) { list($dev_name, $stats_list) = preg_split('/:/', $buf, 2); $stats = preg_split('/\s+/', trim($stats_list)); $results[$dev_name] = array(); $results[$dev_name]['rx_bytes'] = $stats[0]; $results[$dev_name]['rx_packets'] = $stats[1]; $results[$dev_name]['rx_errs'] = $stats[2]; $results[$dev_name]['rx_drop'] = $stats[3]; $results[$dev_name]['tx_bytes'] = $stats[8]; $results[$dev_name]['tx_packets'] = $stats[9]; $results[$dev_name]['tx_errs'] = $stats[10]; $results[$dev_name]['tx_drop'] = $stats[11]; $results[$dev_name]['errs'] = $stats[2] + $stats[10]; $results[$dev_name]['drop'] = $stats[3] + $stats[11]; } } } return $results; } function memory () { if ($fd = fopen('/proc/meminfo', 'r')) { $results['ram'] = array(); $results['swap'] = array(); $results['devswap'] = array(); while ($buf = fgets($fd, 4096)) { if (preg_match('/^MemTotal:\s+(.*)\s*kB/i', $buf, $ar_buf)) { $results['ram']['total'] = $ar_buf[1]; } else if (preg_match('/^MemFree:\s+(.*)\s*kB/i', $buf, $ar_buf)) { $results['ram']['free'] = $ar_buf[1]; } else if (preg_match('/^Cached:\s+(.*)\s*kB/i', $buf, $ar_buf)) { $results['ram']['cached'] = $ar_buf[1]; } else if (preg_match('/^Buffers:\s+(.*)\s*kB/i', $buf, $ar_buf)) { $results['ram']['buffers'] = $ar_buf[1]; } else if (preg_match('/^SwapTotal:\s+(.*)\s*kB/i', $buf, $ar_buf)) { $results['swap']['total'] = $ar_buf[1]; } else if (preg_match('/^SwapFree:\s+(.*)\s*kB/i', $buf, $ar_buf)) { $results['swap']['free'] = $ar_buf[1]; } } $results['ram']['shared'] = 0; $results['ram']['used'] = $results['ram']['total'] - $results['ram']['free']; $results['swap']['used'] = $results['swap']['total'] - $results['swap']['free']; fclose($fd); $swaps = file ('/proc/swaps'); $swapdevs = split("\n", $swaps); for ($i = 1; $i < (sizeof($swapdevs) - 1); $i++) { $ar_buf = preg_split('/\s+/', $swapdevs[$i], 6); $results['devswap'][$i - 1] = array(); $results['devswap'][$i - 1]['dev'] = $ar_buf[0]; $results['devswap'][$i - 1]['total'] = $ar_buf[2]; $results['devswap'][$i - 1]['used'] = $ar_buf[3]; $results['devswap'][$i - 1]['free'] = ($results['devswap'][$i - 1]['total'] - $results['devswap'][$i - 1]['used']); $results['devswap'][$i - 1]['percent'] = round(($ar_buf[3] * 100) / $ar_buf[2]); } // I don't like this since buffers and cache really aren't // 'used' per say, but I get too many emails about it. $results['ram']['t_used'] = $results['ram']['used']; $results['ram']['t_free'] = $results['ram']['total'] - $results['ram']['t_used']; $results['ram']['percent'] = round(($results['ram']['t_used'] * 100) / $results['ram']['total']); $results['swap']['percent'] = round(($results['swap']['used'] * 100) / $results['swap']['total']); } else { $results['ram'] = array(); $results['swap'] = array(); $results['devswap'] = array(); } return $results; } function filesystems () { $df = execute_program('df', '-kP'); $mounts = split("\n", $df); $fstype = array(); if ($fd = fopen('/proc/mounts', 'r')) { while ($buf = fgets($fd, 4096)) { list($dev, $mpoint, $type) = preg_split('/\s+/', trim($buf), 4); $fstype[$mpoint] = $type; $fsdev[$dev] = $type; } fclose($fd); } for ($i = 1, $max = sizeof($mounts); $i < $max; $i++) { $ar_buf = preg_split('/\s+/', $mounts[$i], 6); $results[$i - 1] = array(); $results[$i - 1]['disk'] = $ar_buf[0]; $results[$i - 1]['size'] = $ar_buf[1]; $results[$i - 1]['used'] = $ar_buf[2]; $results[$i - 1]['free'] = $ar_buf[3]; $results[$i - 1]['percent'] = round(($results[$i - 1]['used'] * 100) / $results[$i - 1]['size']) . '%'; $results[$i - 1]['mount'] = $ar_buf[5]; ($fstype[$ar_buf[5]]) ? $results[$i - 1]['fstype'] = $fstype[$ar_buf[5]] : $results[$i - 1]['fstype'] = $fsdev[$ar_buf[0]]; } return $results; } function distro () { if ($fd = fopen('/etc/debian_version', 'r')) { $buf = fgets($fd, 1024); fclose($fd); $result = 'Debian ' . trim($buf); } elseif ($fd = fopen('/etc/SuSE-release', 'r')) { $buf = fgets($fd, 1024); fclose($fd); $result = trim($buf); } elseif ($fd = fopen('/etc/mandrake-release', 'r')) { $buf = fgets($fd, 1024); fclose($fd); $result = trim($buf); } elseif ($fd = fopen('/etc/fedora-release', 'r')) { $buf = fgets($fd, 1024); fclose($fd); $result = trim($buf); } elseif ($fd = fopen('/etc/redhat-release', 'r')) { $buf = fgets($fd, 1024); fclose($fd); $result = trim($buf); } elseif ($fd = fopen('/etc/gentoo-release', 'r')) { $buf = fgets($fd, 1024); fclose($fd); $result = trim($buf); } elseif ($fd = fopen('/etc/slackware-version', 'r')) { $buf = fgets($fd, 1024); fclose($fd); $result = trim($buf); } elseif ($fd = fopen('/etc/eos-version', 'r')) { $buf = fgets($fd, 1024); fclose($fd); $result = trim($buf); } elseif ($fd = fopen('/etc/trustix-release', 'r')) { $buf = fgets($fd, 1024); fclose($fd); $result = trim($buf); } elseif ($fd = fopen('/etc/arch-release', 'r')) { $buf = fgets($fd, 1024); fclose($fd); $result = trim($buf); } else { $result = 'N.A.'; } return $result; } function distroicon () { if (file_exists('/etc/debian_version')) { $result = 'Debian.gif'; } elseif (file_exists('/etc/SuSE-release')) { $result = 'Suse.gif'; } elseif (file_exists('/etc/mandrake-release')) { $result = 'Mandrake.gif'; } elseif (file_exists('/etc/fedora-release')) { $result = 'Fedora.gif'; } elseif (file_exists('/etc/redhat-release')) { $result = 'Redhat.gif'; } elseif (file_exists('/etc/gentoo-release')) { $result = 'Gentoo.gif'; } elseif (file_exists('/etc/slackware-version')) { $result = 'Slackware.gif'; } elseif (file_exists('/etc/eos-version')) { $result = 'free-eos.gif'; } elseif (file_exists('/etc/trustix-release')) { $result = 'Trustix.gif'; } elseif (file_exists('/etc/arch-release')) { $result = 'Arch.gif'; } else { $result = 'xp.gif'; } return $result; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -