rendered paste bodyfunction sys_memory () {
$proc_meminfo = file("/proc/meminfo");
// gather system memory information
for ($i = 0; $proc_meminfo[$i] != NULL; $i++) {
if (ereg("Mem:", $proc_meminfo[$i])) {
$clean = ereg_replace (' +', ' ', $proc_meminfo[$i]); // compact whitespace
$mem = explode (" ", $clean);
}
if (ereg("Swap:", $proc_meminfo[$i])) {
$clean = ereg_replace (' +', ' ', $proc_meminfo[$i]); // compact whitespace
$swap = explode (" ", $clean);
}
}
// create the data structure
// 1 = total, 2 = used, 3 = free, 4 = shared, 5 = buffers, 6 = cached
$memory["mem_total"] = convert_bytes($mem[1]);
$memory["mem_used"] = convert_bytes($mem[2] - $mem[5] - $mem[6]);
$memory["mem_free"] = convert_bytes($mem[1] - ($mem[2] - $mem[5] - $mem[6]));
$memory["mem_used_p"] = round((($mem[2] - $mem[5] - $mem[6]) / $mem[1]) * 100, 2);
$memory["mem_free_p"] = round(($mem[1] - ($mem[2] - $mem[5] - $mem[6])) / $mem[1] * 100, 2);
$memory["swap_total"] = convert_bytes($swap[1]);
$memory["swap_used"] = convert_bytes($swap[2]);
$memory["swap_free"] = convert_bytes($swap[3]);
$memory["swap_used_p"] = round(($swap[2] / $swap[1]) * 100, 2);
$memory["swap_free_p"] = round(($swap[3] / $swap[1]) * 100, 2);
// return the data structure
return $memory;
}