Lucky
Mitglied
Registered: 18.10.2007
Contributions: 63
|
Title: n Paar scripts für Root - vServer besitzer
Wusste nich wo ich es reinpacken sollte also ma hier.
Hab hier n paar Scripts die root - vServer User interessieren Sollten.
Mit diesen Scripts kannst du deine Server Auslastung auslesen und auf ner Webseite anzeigen lassen.
CPU - Auslastung Auslesen.
Datei 1/2
class_CPULoad.php
PHP Code:
<?php
define("TEMP_PATH","/tmp/");
class CPULoad {
function check_load() {
$fd = fopen("/proc/stat","r");
if ($fd) {
$statinfo = explode("n",fgets($fd, 1024));
fclose($fd);
foreach($statinfo as $line) {
$info = explode(" ",$line);
if($info[0]=="cpu") {
array_shift($info);
if(!$info[0]) array_shift($info);
$this->user = $info[0];
$this->nice = $info[1];
$this->system = $info[2];
$this->idle = $info[3];
return;
}
}
}
}
function store_load() {
$this->last_user = $this->user;
$this->last_nice = $this->nice;
$this->last_system = $this->system;
$this->last_idle = $this->idle;
}
function save_load() {
$this->store_load();
$fp = @fopen(TEMP_PATH."cpuinfo.tmp","w");
if ($fp) {
fwrite($fp,time()."n");
fwrite($fp,$this->last_user." ".$this->last_nice." ".$this->last_system." ".$this->last_idle."n");
fwrite($fp,$this->load["user"]." ".$this->load["nice"]." ".$this->load["system"]." ".$this->load["idle"]." ".$this->load["cpu"]."n");
fclose($fp);
}
}
function load_load() {
$fp = @fopen(TEMP_PATH."cpuinfo.tmp","r");
if ($fp) {
$lines = explode("n",fread($fp,1024));
$this->lasttime = $lines[0];
list($this->last_user,$this->last_nice,$this->last_system,$this->last_idle) = explode(" ",$lines[1]);
list($this->load["user"],$this->load["nice"],$this->load["system"],$this->load["idle"],$this->load["cpu"]) = explode(" ",$lines[2]);
fclose($fp);
} else {
$this->lasttime = time() - 60;
$this->last_user = $this->last_nice = $this->last_system = $this->last_idle = 0;
$this->user = $this->nice = $this->system = $this->idle = 0;
}
}
function calculate_load() {
$d_user = $this->user - $this->last_user;
$d_nice = $this->nice - $this->last_nice;
$d_system = $this->system - $this->last_system;
$d_idle = $this->idle - $this->last_idle;
$total=$d_user+$d_nice+$d_system+$d_idle;
if ($total<1) $total=1;
$scale = 100.0/$total;
$cpu_load = ($d_user+$d_nice+$d_system)*$scale;
$this->load["user"] = $d_user*$scale;
$this->load["nice"] = $d_nice*$scale;
$this->load["system"] = $d_system*$scale;
$this->load["idle"] = $d_idle*$scale;
$this->load["cpu"] = ($d_user+$d_nice+$d_system)*$scale;
}
function print_current() {
printf("Current load tickers - User: %f Nice: %f System: %f Idle: %f<br>",
$this->user,
$this->nice,
$this->system,
$this->idle
);
}
function print_load() {
printf("CPU Auslastung: %.1f%%<br>",
$this->load["cpu"]
);
}
function sample_load($interval=1) {
$this->check_load();
$this->store_load();
sleep($interval);
$this->check_load();
$this->calculate_load();
}
function get_load($fastest_sample=4) {
$this->load_load();
$this->cached = (time()-$this->lasttime);
if ($this->cached>=$fastest_sample) {
$this->check_load();
$this->calculate_load();
$this->save_load();
}
}
}
?>
Teil 2 Datei showload.php
PHP Code:
<pre>
<?php
require_once("class_CPULoad.php");
$cpuload = new CPULoad();
$cpuload->get_load();
$cpuload->print_load();
?>
</pre>
Das Script dann mit deine-domain.de/showload.php aufrufen
|