Serverstatus abfragen

Bash, Shell, PHP, Python, Perl, CGI
rod
Posts: 19
Joined: 2003-08-21 20:23

Serverstatus abfragen

Post 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.
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Serverstatus abfragen

Post by captaincrunch »

DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
rod
Posts: 19
Joined: 2003-08-21 20:23

Re: Serverstatus abfragen

Post by rod »

Nein ich wollte ja gerade keine grafische Auswertung sondern nur den Ping und den damit verbundenen Status online oder nicht.
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Serverstatus abfragen

Post by captaincrunch »

DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
tuxyso
Posts: 38
Joined: 2003-05-21 08:24

Re: Serverstatus abfragen

Post 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
Last edited by tuxyso on 2003-08-21 20:37, edited 1 time in total.
rod
Posts: 19
Joined: 2003-08-21 20:23

Re: Serverstatus abfragen

Post 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.
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: Serverstatus abfragen

Post 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.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
rod
Posts: 19
Joined: 2003-08-21 20:23

Re: Serverstatus abfragen

Post 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; 
    } 
?> 
rod
Posts: 19
Joined: 2003-08-21 20:23

Re: Serverstatus abfragen

Post 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;
?>

krispin
Posts: 216
Joined: 2003-04-14 16:30

Re: Serverstatus abfragen

Post by krispin »

exec gibt nichts aus,

versuch es mal mit shell_exec !

http://de3.php.net/de/shell_exec


MfG
Krispin
rod
Posts: 19
Joined: 2003-08-21 20:23

Re: Serverstatus abfragen

Post 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; 
?> 
krispin
Posts: 216
Joined: 2003-04-14 16:30

Re: Serverstatus abfragen

Post 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... :)
rod
Posts: 19
Joined: 2003-08-21 20:23

Re: Serverstatus abfragen

Post by rod »

jetzt erhalte ich folgende Fehlermeldung

Parse error: parse error, unexpected ',' in /home/www/web1/html/ping.php on line 6
tuxyso
Posts: 38
Joined: 2003-05-21 08:24

Re: Serverstatus abfragen

Post 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
krispin
Posts: 216
Joined: 2003-04-14 16:30

Re: Serverstatus abfragen

Post 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....
rod
Posts: 19
Joined: 2003-08-21 20:23

Re: Serverstatus abfragen

Post 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>
krispin
Posts: 216
Joined: 2003-04-14 16:30

Re: Serverstatus abfragen

Post 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
rod
Posts: 19
Joined: 2003-08-21 20:23

Re: Serverstatus abfragen

Post 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.
rod
Posts: 19
Joined: 2003-08-21 20:23

Re: Serverstatus abfragen

Post 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 :)