Я хочу, чтобы сервер и использование ОЗУ с использованием php. Сценарий должен работать на windows и linux.
Как мне это сделать?
Первая функция вернет использование памяти сервера:
function get_server_memory_usage(){ $free = shell_exec('free'); $free = (string)trim($free); $free_arr = explode("\n", $free); $mem = explode(" ", $free_arr[1]); $mem = array_filter($mem); $mem = array_merge($mem); $memory_usage = $mem[2]/$mem[1]*100; return $memory_usage; }
Эта функция вернет использование CPU сервера:
function get_server_cpu_usage(){ $load = sys_getloadavg(); return $load[0]; }
Я бы посоветовал использовать PHP SNMP
http://www.php.net/manual/en/book.snmp.php
Это обеспечит унифицированное решение как для Windows, так и для Linux, без необходимости взаимодействовать с командами exec.
Разумеется, вам необходимо установить демон / службу SNMP для Windows на обоих серверах Windows и Linux
Для Linux просто используйте Net-SNMP, например CentOS
sudo yum install net-snmp sudo service snmpd start sudo chkconfig snmpd on
Net-SNMP также доступен для Windows: