Page 1 of 1
Serverstatus abfragen
Posted: 2003-08-21 20:28
by rod
Hallo liebe Gemeinde
Ich bin heute auf folgende Seite gestossen
http://www.step2internet.de/df-servercheck/index.php
Nun zu meiner Frage.
Wo finde ich ein solches Script. bzw. Wie kann ich so etwas realiesieren. Ich habe schon mehrere Sachen gesucht und bin dabei auf Ping-IT und ähnliches gestossen was aber nach einigen Tests nicht funktioniert hat. Da man die IP eingeben muss und das Ergebniss dann in einer neuen Seite angezeigt wird.
Re: Serverstatus abfragen
Posted: 2003-08-21 20:31
by captaincrunch
Re: Serverstatus abfragen
Posted: 2003-08-21 20:32
by rod
Nein ich wollte ja gerade keine grafische Auswertung sondern nur den Ping und den damit verbundenen Status online oder nicht.
Re: Serverstatus abfragen
Posted: 2003-08-21 20:34
by captaincrunch
Re: Serverstatus abfragen
Posted: 2003-08-21 20:35
by tuxyso
Na so ein "ping-test" kannst du unter Perl relativ einfach mit einer Lib aus dem CPAN hinbekommen. Möchtest du auch überprüfen, ob die anderen Dienste laufen, oder sind dir nur die Pings wichtig? Wie soll diese Ã?berprüfung aussehen, soll nur der Prozess von z.B. httpd laufen (was keine Gewährleistung ist, ob der Server tatsächlich erreichbar ist) oder möchtest du reale Funktionstests machen?
EDIT: Oder eben schon eine vorgefertigte Lösung wie CaptainCrunch es empfiehlt. Selbst programmieren dürfte aber auch nicht sehr schwer sein
Re: Serverstatus abfragen
Posted: 2003-08-21 20:37
by rod
Also erst einmal ich bin begeistert über dieses herrliche Forum. :)
Doch nun zu deinem zweiten Link. Das sieht gut aus doch gibt es da nicht was einfacheres weil ich keine Analysen haben will sondern nur solch eine ganz simple Ping Status Anzeige.
Re: Serverstatus abfragen
Posted: 2003-08-21 20:40
by captaincrunch
Das sieht gut aus doch gibt es da nicht was einfacheres weil ich keine Analysen haben will sondern nur solch eine ganz simple Ping Status Anzeige.
OK, aber warum so "simpel", wenn du es ohne grpÃ?artigen Aufwand auch ganz leicht (im Falle von Nagios) erweiteren
könntest ? ;)
Zum Hintergrund : ich monitore mit Nagios auf meiner Arbeit mittlerweile ca. 65 Server auf verschiedenste Dienste, und bin seit jeher begeistert, Gerade wenn's "nur" ein einfacher ping sein soll, kannst du's kaum einfacher haben.
Re: Serverstatus abfragen
Posted: 2003-08-21 20:47
by rod
ich hatte eher an sowas gedacht bloss weiss ich nicht wie ich die Ausgabe hinbekomme.
Code: Select all
<?php
function ping($host)
{
$ip = gethostbyname($host);
$ping = `ping -c 1 -q $ip`;
$res = '1 packets transmitted, 1 packets recieved';
if(strpos($ping, $res))
return true;
else
return false;
}
?>
Re: Serverstatus abfragen
Posted: 2003-08-21 20:53
by rod
so das habe ich noch gefunden aber funktioniert nicht. Weiss einer warum?
Code: Select all
<?php
$ip="DIE_IP";
$online=exec("ping $ip -n 1"); // Parameter -c für UNIX system, -n glaub ich für Win
$ausgabe=explode(",",$online);
$ausgabe=str_replace("Minimum = ","",$ausgabe[0]);
$ausgabe=str_replace("ms","",$ausgabe);
echo $ausgabe;
?>
Re: Serverstatus abfragen
Posted: 2003-08-21 21:36
by krispin
exec gibt nichts aus,
versuch es mal mit shell_exec !
http://de3.php.net/de/shell_exec
MfG
Krispin
Re: Serverstatus abfragen
Posted: 2003-08-21 22:00
by rod
Darauf hin bekomme ich diese Meldung
Warning: Cannot execute using backquotes in safe mode in /home/www/web1/html/ping.php on line 3
Code: Select all
<?php
$ip="66.135.192.85";
$online=shell_exec("ping $ip -c 1"); // Parameter -c für UNIX system, -n glaub ich für Win
$ausgabe=explode(",",$online);
$ausgabe=str_replace("Minimum = ","",$ausgabe[0]);
$ausgabe=str_replace("ms","",$ausgabe);
echo $ausgabe;
?>
Re: Serverstatus abfragen
Posted: 2003-08-21 22:35
by krispin
hmm, unter safe-mod läuft dieser befehl nicht... hmm
moment!
editiere ich dann hier herein!
Code: Select all
<?php
$ip="66.135.192.85";
$openresource=fopen("ping $ip -c 1", 'r');
while(!feof($openresource))
{
$ausgabe = $ausgabe . fread(($openresource, 1024);
}
$ausgabe=explode(",",$online);
$ausgabe=str_replace("Minimum = ","",$ausgabe[0]);
$ausgabe=str_replace("ms","",$ausgabe);
echo $ausgabe;
?>
wenn das auch nichts nützt.... dann weiss ich auch nicht mehr weiter...
obwohl evt. doch... :)
Re: Serverstatus abfragen
Posted: 2003-08-22 01:09
by rod
jetzt erhalte ich folgende Fehlermeldung
Parse error: parse error, unexpected ',' in /home/www/web1/html/ping.php on line 6
Re: Serverstatus abfragen
Posted: 2003-08-22 07:43
by tuxyso
Wenn du das nicht unbedingt mit Php machen willst, kannst du das CPAN Modul Net::Ping benutzen und dir eine Lösung in Perl programmieren. Du kannst bei diesem Modul aber nicht die Ping Zeiten auslesen, wenn es dir aber nur um eine Verfügbarkeit geht, dürfte das egal sein:
Code: Select all
#!/usr/bin/perl
use Net::Ping;
$host = "puretec.de";
$p = Net::Ping->new();
if($p->ping($host))
{ print "$host ist erreichbar.n" }
else
{ print "Host $host ist nicht erreichbarn" };
$p->close();
P.S.: Timeouts etc. kannst du bei der Erstellung des Ping-Objekts optional mitangeben. Für weitere Details dazu s.
http://www.cpan.org
Re: Serverstatus abfragen
Posted: 2003-08-22 12:08
by krispin
hmm, ich habe gerade noch mal dein erster Script getestet:
ok, dann versuche es erstmal mit Perl weiter, ich hasbe hier irgendwie nen block momentan....
Re: Serverstatus abfragen
Posted: 2003-08-22 14:42
by rod
So ich hab mich mal etwas mehr damit beschäftigt. :-D
Das Script zeigt mir auf alle Fälle schon mal das mein Server online ist Yeahh das ist schon mal gut. Bloss die Ping Anzeige funtioniert immer noch nicht.
TimeOut
Folgendermassen sieht das Script nun aus.
Zu testen wie es reagiert auf dieser Seite
http://www.sven24.net/index.php
Bin Dankbar für jede Hilfe. :D
Code: Select all
</head>
<?
require("includes/config.inc.php");
?>
<tr>
<?
$ping = exec("ping -c 1 $df_primrouter_name",$result, $error);
preg_match("=([d.]+)/([d.]+)/([d.]+) ms=", $ping, $matches);
If (trim($matches[2])=="")
{
echo "<small>Ping: timeout</small>";
}
else
{
echo "<small>Ping: ".$matches[2]." ms</small>";
}
?>
</td>
</tr>
<tr>
<td class="arielblaulinksfett">
<?
$fp = @fsockopen ("$http_name", $http_port, &$errno, &$errstr, 5);
If (!$fp)
{
echo "<p class="offline">Server offline - $errstr ($errno)</p>";
}
else
{
echo "<p class="online">Server online</p>";
}
fclose($fp);
?>
</td>
</tr>
</table>
</td>
</tr>
</body>
</html>
Re: Serverstatus abfragen
Posted: 2003-08-22 14:51
by krispin
das problem ist, dass exec immer nur die Letzte Zeile der Anwendung aus gibt, also in dem Falle unbrauch bar, ich wüsste aber nun auch keine Lösung mehr, zumindestens, wo man nicht mal ebend nen paar Befehle geben kann.
Dein größtes übel ist, dass du php da im Safe-Mod laufen hast.
Kannste Safe-mod nicht für diesen vHost abschalten, und den "ping"-command in dein DocumentRoot packen, und dann mit dem
Code: Select all
php_admin_value open_basedir "/zum/doc-root" eingrenzen, wo die PHP dieses VHost herum fummeln dürfen?
Mfg
Krispin
Re: Serverstatus abfragen
Posted: 2003-08-22 14:55
by rod
Also das mit dem exec verstehe ich nicht ganz denn das letzte Script ist das was bei step2internet.de auch läuft.
http://www.step2internet.de/df-servercheck/index.php
Wenn du willst kann ich dir das komplette Script ja mal schicken.
Re: Serverstatus abfragen
Posted: 2003-08-22 17:16
by rod
So dann wollen wir dieses Thema hier mal abschliessen. :-D
:arrow: Danke für die Unterstützung von
krispin und der Firma
www.step2internet.de (dies ist keine Werbung) die mir freundlicherweise das Script zur Verfügung gestellt hat.
Nun funktioniert meine Ping anzeige tadellos.
:arrow: Das Problem lag am
SafeMode von PHP.
Lasst Euch nicht täuschen wenn in der httpd.conf der Safe Mode abgestellt ist. Ã?berprüft das bitte immer mit der phpinfo.php ob er auch wirklich aus ist. In meinem Fall hat das liebe Confixx in der /etc/httpd/confixx_vhosts.conf den Safe Mode aktiviert gehabt. Somit ging jegliche Ping Ausgabe nicht.
Ich danke allen nochmals die mich hier tatenkräftig unterstützt haben.
Mfg Rod :)