Lines 319-379
Link Here
|
319 |
} |
318 |
} |
320 |
|
319 |
|
321 |
function memory () { |
320 |
function memory () { |
322 |
if ($fd = fopen('/proc/meminfo', 'r')) { |
321 |
$uname = posix_uname(); |
323 |
while ($buf = fgets($fd, 4096)) { |
322 |
if ($fd = fopen('/proc/meminfo', 'r')) { |
324 |
if (preg_match('/Mem:\s+(.*)$/', $buf, $ar_buf)) { |
323 |
if(preg_match('/^2\.(5|6)\.\d+/i',$uname['release'])) { |
325 |
$ar_buf = preg_split('/\s+/', $ar_buf[1], 6); |
324 |
$results['ram'] = array(); |
326 |
|
325 |
$results['swap'] = array(); |
327 |
$results['ram'] = array(); |
326 |
$results['devswap'] = array(); |
328 |
|
327 |
|
329 |
$results['ram']['total'] = $ar_buf[0] / 1024; |
328 |
while ($buf = fgets($fd, 4096)) { |
330 |
$results['ram']['used'] = $ar_buf[1] / 1024; |
329 |
if (preg_match('/^MemTotal:\s+(.*)\s*kB/i', $buf, $ar_buf)) { |
331 |
$results['ram']['free'] = $ar_buf[2] / 1024; |
330 |
$results['ram']['total']=$ar_buf[1]; |
332 |
$results['ram']['shared'] = $ar_buf[3] / 1024; |
331 |
|
333 |
$results['ram']['buffers'] = $ar_buf[4] / 1024; |
332 |
} else if (preg_match('/^MemFree:\s+(.*)\s*kB/i', $buf, $ar_buf)) { |
334 |
$results['ram']['cached'] = $ar_buf[5] / 1024; |
333 |
$results['ram']['free']=$ar_buf[1]; |
335 |
|
334 |
|
336 |
// I don't like this since buffers and cache really aren't |
335 |
} else if (preg_match('/^Cached:\s+(.*)\s*kB/i', $buf, $ar_buf)) { |
337 |
// 'used' per say, but I get too many emails about it. |
336 |
$results['ram']['cached']=$ar_buf[1]; |
338 |
$results['ram']['t_used'] = $results['ram']['used']; |
337 |
|
339 |
$results['ram']['t_free'] = $results['ram']['total'] - $results['ram']['t_used']; |
338 |
} else if (preg_match('/^Buffers:\s+(.*)\s*kB/i', $buf, $ar_buf)) { |
340 |
$results['ram']['percent'] = round(($results['ram']['t_used'] * 100) / $results['ram']['total']); |
339 |
$results['ram']['buffers']=$ar_buf[1]; |
341 |
} |
340 |
} else if (preg_match('/^SwapTotal:\s+(.*)\s*kB/i', $buf, $ar_buf)) { |
342 |
|
341 |
$results['swap']['total']=$ar_buf[1]; |
343 |
if (preg_match('/Swap:\s+(.*)$/', $buf, $ar_buf)) { |
342 |
} else if (preg_match('/^SwapFree:\s+(.*)\s*kB/i', $buf, $ar_buf)) { |
344 |
$ar_buf = preg_split('/\s+/', $ar_buf[1], 3); |
343 |
$results['swap']['free']=$ar_buf[1]; |
345 |
|
344 |
} |
346 |
$results['swap'] = array(); |
345 |
|
347 |
|
346 |
} |
348 |
$results['swap']['total'] = $ar_buf[0] / 1024; |
347 |
$results['ram']['shared']=0; |
349 |
$results['swap']['used'] = $ar_buf[1] / 1024; |
348 |
$results['ram']['used']=$results['ram']['total']-$results['ram']['free']; |
350 |
$results['swap']['free'] = $ar_buf[2] / 1024; |
349 |
$results['swap']['used']=$results['swap']['total']-$results['swap']['free']; |
351 |
$results['swap']['percent'] = round(($ar_buf[1] * 100) / $ar_buf[0]); |
350 |
} else { |
352 |
|
351 |
while ($buf = fgets($fd, 4096)) { |
353 |
// Get info on individual swap files |
352 |
if (preg_match('/Mem:\s+(.*)$/', $buf, $ar_buf)) { |
354 |
$swaps = file ('/proc/swaps'); |
353 |
$ar_buf = preg_split('/\s+/', $ar_buf[1], 6); |
355 |
$swapdevs = split("\n", $swaps); |
354 |
|
356 |
|
355 |
$results['ram'] = array(); |
357 |
for ($i = 1; $i < (sizeof($swapdevs) - 1); $i++) { |
356 |
|
358 |
$ar_buf = preg_split('/\s+/', $swapdevs[$i], 6); |
357 |
$results['ram']['total'] = $ar_buf[0] / 1024; |
359 |
|
358 |
$results['ram']['used'] = $ar_buf[1] / 1024; |
360 |
$results['devswap'][$i - 1] = array(); |
359 |
$results['ram']['free'] = $ar_buf[2] / 1024; |
361 |
$results['devswap'][$i - 1]['dev'] = $ar_buf[0]; |
360 |
$results['ram']['shared'] = $ar_buf[3] / 1024; |
362 |
$results['devswap'][$i - 1]['total'] = $ar_buf[2]; |
361 |
$results['ram']['buffers'] = $ar_buf[4] / 1024; |
363 |
$results['devswap'][$i - 1]['used'] = $ar_buf[3]; |
362 |
$results['ram']['cached'] = $ar_buf[5] / 1024; |
364 |
$results['devswap'][$i - 1]['free'] = ($results['devswap'][$i - 1]['total'] - $results['devswap'][$i - 1]['used']); |
363 |
} |
365 |
$results['devswap'][$i - 1]['percent'] = round(($ar_buf[3] * 100) / $ar_buf[2]); |
364 |
|
366 |
} |
365 |
if (preg_match('/Swap:\s+(.*)$/', $buf, $ar_buf)) { |
367 |
break; |
366 |
$ar_buf = preg_split('/\s+/', $ar_buf[1], 3); |
368 |
} |
367 |
|
369 |
} |
368 |
$results['swap'] = array(); |
370 |
fclose($fd); |
369 |
|
371 |
} else { |
370 |
$results['swap']['total'] = $ar_buf[0] / 1024; |
372 |
$results['ram'] = array(); |
371 |
$results['swap']['used'] = $ar_buf[1] / 1024; |
373 |
$results['swap'] = array(); |
372 |
$results['swap']['free'] = $ar_buf[2] / 1024; |
374 |
$results['devswap'] = array(); |
373 |
|
375 |
} |
374 |
// Get info on individual swap files |
376 |
return $results; |
375 |
break; |
|
|
376 |
} |
377 |
} |
378 |
fclose($fd); |
379 |
} |
380 |
$swaps = file ('/proc/swaps'); |
381 |
$swapdevs = split("\n", $swaps); |
382 |
|
383 |
for ($i = 1; $i < (sizeof($swapdevs) - 1); $i++) { |
384 |
$ar_buf = preg_split('/\s+/', $swapdevs[$i], 6); |
385 |
|
386 |
$results['devswap'][$i - 1] = array(); |
387 |
$results['devswap'][$i - 1]['dev'] = $ar_buf[0]; |
388 |
$results['devswap'][$i - 1]['total'] = $ar_buf[2]; |
389 |
$results['devswap'][$i - 1]['used'] = $ar_buf[3]; |
390 |
$results['devswap'][$i - 1]['free'] = ($results['devswap'][$i - 1]['total'] - $results['devswap'][$i - 1]['used']); |
391 |
$results['devswap'][$i - 1]['percent'] = round(($ar_buf[3] * 100) / $ar_buf[2]); |
392 |
} |
393 |
|
394 |
// I don't like this since buffers and cache really aren't |
395 |
// 'used' per say, but I get too many emails about it. |
396 |
$results['ram']['t_used'] = $results['ram']['used']; |
397 |
$results['ram']['t_free'] = $results['ram']['total'] - $results['ram']['t_used']; |
398 |
$results['ram']['percent'] = round(($results['ram']['t_used'] * 100) / $results['ram']['total']); |
399 |
$results['swap']['percent'] = round(($results['swap']['used'] * 100) / $results['swap']['total']); |
400 |
|
401 |
} else { |
402 |
$results['ram'] = array(); |
403 |
$results['swap'] = array(); |
404 |
$results['devswap'] = array(); |
405 |
} |
406 |
return $results; |
377 |
} |
407 |
} |
378 |
function filesystems () { |
408 |
function filesystems () { |