PHP-Skript fuer Analyse mit mehreren Rechnern

Internet und Telefon gestört oder gar ganz ausgefallen? Speedprobleme, die nicht offensichtlich auf die verwendeten Geräte zurückzuführen sind? Dann ist dieses Forum genau richtig!
Forumsregeln
Forenregeln


Bitte gib bei der Erstellung eines Threads im Feld „Präfix“ an, ob du Kunde von Vodafone Kabel Deutschland („[VFKD]“), von Vodafone West („[VF West]“), von eazy („[eazy]“) oder von O2 über Kabel („[O2]“) bist.
Benutzeravatar
vigidr
Fortgeschrittener
Beiträge: 412
Registriert: 06.02.2008, 09:42
Wohnort: Berlin

PHP-Skript fuer Analyse mit mehreren Rechnern

Beitrag von vigidr »

Hallo Gemeinde,

aus Eigeninitiative habe ich mir ein kleines PHP-Skript gebastelt, welches es mir ermoeglicht auf eine Samba-Freigabe auf meinem Linux-Server von allen Rechnern eine Stoerungsanalyse zu sammeln - und das unkompliziert.

Ich habe bei mir vier aktiv genutzte Rechner und aktuell gibt es des Oefteren mal erhoehte Latenzen, sodass man von Spieleservern geworfen wird usw. Um den Prozess etwas zu erleichtern, kann ich von jedem Rechner aus dieses Skript starten und habe die Ergebnisse auf meinem Server liegen. Die brauche ich dann nur noch an eine Mail an Kabel Deutschland anzufuegen.

Das loest keine Probleme, aber hilft bei der Datensammlung.

Hier das Skript (test.php) fuer mein Netzwerk, wie ich es aktuell nutze:

Code: Alles auswählen

<?php

/**********
PING und ROUTENVERFOLGUNG zusammengefasst fuer Stoerungsanalyse
Dateien, die erzeugt werden, koennen an den Dienstanbieter per Mail geschickt werden.

Wichtig ist, dass moeglichst mit mehreren Betriebssystemen probiert wird.

AUFRUF: php test.php [NUTZER] [HOST]
BEISPIEL: php test.php win google.de
**********/

// Pfadangaben:
$path=array(
"server"	=> "/var/smb/Kabel/",
"netbook"	=> "/mnt/smb/Kabel/",
"win"		=> "Z:\\Kabel\\"
);

// Befehle fuer Ping:
$ping=array(
"server"	=> "ping -c 100",
"netbook"	=> "ping -c 100",
"win"		=> "ping -n 100"
);

// Befehle fuer Routenverfolgung:
$route=array(
"server"	=> "traceroute",
"netbook"	=> "traceroute",
"win"		=> "tracert"
);

// Zum Filtern der Schluessel...
$keys=array_keys($path);

// Validierung...
if($_SERVER['argc']<3
|| !in_array($_SERVER['argv'][1],$keys)
|| preg_match("/[^a-z^A-Z^0-9\.\-]/",$_SERVER['argv'][2]))
exit;	// Und wenn diese fehlschlaegt, dann Stopp!

// Dateibezeichnung fuer Host und Nutzer sowie Zeitstempel
$file_argv=preg_replace("/[^a-z^A-Z^0-9]/","-",$_SERVER['argv'][2])."_".$_SERVER['argv'][1];
$file_time=date("Ymd-Hi");

// Ping...
echo "Storing '".$ping[ $_SERVER['argv'][1] ]."' for '".$_SERVER['argv'][2]."' to '".$path[ $_SERVER['argv'][1] ]."'...";
exec($ping[ $_SERVER['argv'][1] ]." ".$_SERVER['argv'][2]." > ".$path[ $_SERVER['argv'][1] ].$file_time."_ping_".$file_argv.".txt");
echo " DONE\n";

// Routenverfolgung...
echo "Storing '".$route[ $_SERVER['argv'][1] ]."' for '".$_SERVER['argv'][2]."' to '".$path[ $_SERVER['argv'][1] ]."'...";
exec($route[ $_SERVER['argv'][1] ]." ".$_SERVER['argv'][2]." > ".$path[ $_SERVER['argv'][1] ].$file_time."_route_".$file_argv.".txt");
echo " DONE\n";

// Benutzer ueber Skriptende informieren...
echo "\nProcesses finished.\n";

?>
Das Skript ist gegen PHP-Hacking geschuetzt.

Viel Spass damit und moege eure Arbeit damit erleichtert sein! ;)
VDSL 50 von T-Home.
Benutzeravatar
vigidr
Fortgeschrittener
Beiträge: 412
Registriert: 06.02.2008, 09:42
Wohnort: Berlin

Re: PHP-Skript fuer Analyse mit mehreren Rechnern

Beitrag von vigidr »

Da mir selbst das Ganze irgendwann zu umstaendlich geworden ist, hab' ich mal eben ein Open Source-Projekt eroeffnet - wem's interessiert: Ping Monitoring

[ externes Bild ]

Man sollte bei der aktuellen Version aber ueber einen stetig laufenden Linux-Rechner verfuegen, ansonsten das Skript umschreiben. Eine Datensammlung macht aber nur bei stetig laufenden Rechnern Sinn.

Kleiner Tipp: So bekommt man auch rueckwirkend hohe Auslastungen mit.
VDSL 50 von T-Home.