#!/usr/bin/php
<?php
$server = "127.0.0.1"; // Your server.
$maxband = "500000"; // Maximum Bandwidth before rollover in BYTES.
$mirror = "mirror.yoursite.com"; // The mirror server.
$handle = fopen ("http://$server/server-status?auto", "r");
if ($handle == FALSE) {
echo("<p>Error</p>");
exit();
}
while (!feof($handle)) {
$buffer=fread($handle,4096);
}
fclose($handle);
list($th,$tb,$cpu,$uptime,$rs,$bs,$br,$busy,$idle,$scoreboard)= split ("\n",
$buffer);
$bs = ereg_replace(".*BytesPerSec: ", "", $bs);
if ($bs > $maxband) {
$location = "http://$mirror/$file";
} else {
$location = "http://$server/$file";
}
// Test Method
echo "<p>$server limit is $maxband bytes. Current bandwidth is $bs.</p>";
echo "<p>Sending you to <b>$location</b>.</p>";
?>
как вытащить server-status из апача, и не только это.
Код:
собсно вылазит ерор.
Warning: fopen(http://127.0.0.1/server-status?auto) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in z:\home\test1.ru\cgi\1.php on line 48
48 строка в коде(убрал коменты так что не считайте строки=) ):
$handle = fopen ("http://$server/server-status?auto", "r");
подскажите что не так?
Вообще мне надо получить следующую инфу от апача:
uptime, входящий/исходящий трафик, загрузка процессора сервера, построение графиков использования канала и процессора
2. вы обязательно хотите использовать server-status?
uptime - получается обработкой результатов вывода утилиты uptime
входящий и исходящий трафик на Linux - смотрится через procfs
загрузка процессора - vmstat
графики - строятся через rrd
И у меня задача работать только с апачем. и только с пхп, вообщем какбы доступа на сервак нету, только апач.
Цитата:
А как это в конфиги выглядит включение хендла для server-status?
Код:
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from .example.com
</Location>
SetHandler server-status
Order deny,allow
Deny from all
Allow from .example.com
</Location>
по умолчанию отключен.
Цитата:
И у меня задача работать только с апачем. и только с пхп, вообщем какбы доступа на сервак нету, только апач.
ну доступ на сервак то и не нужен, в общем то... достаточно, чтобы можно было вызывать внешние утилиты через exec. странная задача, конечно
есть еще что нибудь кроме server-status откуда можно инфу достать.
как это неизвестно? :) базовые утилиты получения информации о системе - это стандартный набор.
Препод сказал покурить на тему SNMP и модулей апача. вроде есть для апача(вообще тока вот на виках прочел, так что простите если чушь несу) MIB откуда можно все вытянуть. Кто может что слышал об этом?