Server online ?!

Alles, was PHP betrifft, kann hier besprochen werden.

Server online ?!

Postby h0n1g » 02. May 2006 15:29

Tagchen zusammen, mal wieder eine kleine Frage,

ich habe ein kleines script geschrieben, womit man Server in eine DB eintragen kann.
Durch das Script ist es für den Admin zulässig jeweilige Server zu starten (Intranet) (wird ausgeführt durch eine batch file).

Habe nun folgendes Problem, wie bekomme ich heraus, ob die Server online sind oder nicht ?

Dachte da an sowas wie einen Ping befehl, der alle 300 sec erneut pingt...

hoffe auf hilfe, und danke im voraus

Gruß Sven
Jeder weiß selbst was er tut, aber wissen es auch andere ?
h0n1g
 
Posts: 16
Joined: 11. July 2005 10:21
Location: Pinneberg (Hamburg)

Postby ManUnix » 02. May 2006 20:29

Hi Sven,

h0n1g wrote:Dachte da an sowas wie einen Ping befehl, der alle 300 sec erneut pingt...


spontan fällt mir da Nagios ein.

Da kannst Du einstellen, wie oft ein Ping abgesetzt wird und ob sich Nagios per Mail melden soll, wenn ein Server nicht erreichbar ist (und und und).


Ohne Dauerping würde es auch ein fsockopen tun.
Code: Select all
$fp = fsockopen($SERVER, $PORT, $errno, $errstr, 30);
if(!$fp) {
     echo "Server offline";
} else {
     echo "Server online";
     fclose($fp);
}


Wobei $PORT ein beliebiger Port Deines Servers sein kann, auf dem dann geprüft wird, ob der Server antwortet oder nicht.

cu,
Manu
User avatar
ManUnix
 
Posts: 113
Joined: 16. April 2006 15:14

Postby semtex » 02. May 2006 20:55

Zu erfahren ob die Server online sind, ist ja sehr schön.
Nur... ist ein reiner Ping auf die Maschine keine Garantie ob der Server und alle benötigten Dienste auch ordnungsgemäss hochgefahren sind und ob diese auch richtig laufen!? :wink:

Dann würde ich eher noch die Ports abfragen, das gibt schon ein bischen mehr Auskunft über den Betriebszustand.
semtex
 
Posts: 57
Joined: 12. April 2006 16:41

Postby Ticha » 02. May 2006 23:08

ich habe da auch mal ein kleines script geschrieben.

allerdings überprüfe ich ob es eine Verbindung zum SQL server aufbaut. Wenn ja gibt er 1 wenn nein 0

allerdings funktioniert das nur per localhost. Bei einem anderen server funzt es nicht und ich weiss nicht warum.
1101011010101110100010101010101101
0101011010101110101010101111100010
0011010101111000100101010101010111
1110100011010101001010101102011001

2??? EINE 2??? AHHH ES GIBT KEINE 2!!! ES DARF KEINE 2 GEBEN !!! MEINE WELT GEHT UNTER!!! *umfall TOT*
Ticha
 
Posts: 94
Joined: 18. January 2006 14:23

Postby Ticha » 02. May 2006 23:10

hier mal der code

sry muss noch gekürz werden.... ist noch construct





Code: Select all
if($conn = @mysql_connect($mysqlhost, $mysqluser, $mysqlpasswd))   
   {mysql_select_db($mysqldb);
   $anfrage_connection="SELECT status FROM connection WHERE id = '2';";
         $ergebnis_connection = mysql_query($anfrage_connection);
            $ausgabe_connection = mysql_fetch_object($ergebnis_connection);
               $status = ($ausgabe_connection->status);
               if ($status == 1)
               {
               echo"$status.GIF";
               }
               else
               {
               echo"0.GIF";
               }
         }
            
else
{
  echo " 0.GIF ";
}
1101011010101110100010101010101101
0101011010101110101010101111100010
0011010101111000100101010101010111
1110100011010101001010101102011001

2??? EINE 2??? AHHH ES GIBT KEINE 2!!! ES DARF KEINE 2 GEBEN !!! MEINE WELT GEHT UNTER!!! *umfall TOT*
Ticha
 
Posts: 94
Joined: 18. January 2006 14:23

Postby semtex » 02. May 2006 23:26

Ticha wrote:
allerdings funktioniert das nur per localhost. Bei einem anderen server funzt es nicht und ich weiss nicht warum.



sehr nett, aber im grunde nur spielerei !
warum ? weil 99% aller datenbankserver keinen externen zugriff von einem fremden host zulassen, darum funktioniert dein script auch nur local, egal ob du die korrekten datenbankdaten hast, oder nicht.

du kannst das gerne mal selbst testen, dafür musst du "skip-networking" in der my.cnf ausschalten.

wenn du einen dienst wie ftp, mysql, http usw. relativ genau und extern abfragen möchtest, dann musst du es über die ports machen..

aber trotzdem, mache weiter so.. :idea:
Last edited by semtex on 02. May 2006 23:39, edited 1 time in total.
semtex
 
Posts: 57
Joined: 12. April 2006 16:41

Postby Ticha » 02. May 2006 23:37

ich habe gerade die Function die Man Unix angegeben hat ausprobiert.
Ist eine Super Lösung für mein Problem das ich auch habe. Leider habe ich nun ein weiteres problem. Da ich keine feste IP habe, müsste ich den Server über ein http protokoll anpingen. Doch da spielt Xampp nicht mit :-I

jmd eine Idee?
1101011010101110100010101010101101
0101011010101110101010101111100010
0011010101111000100101010101010111
1110100011010101001010101102011001

2??? EINE 2??? AHHH ES GIBT KEINE 2!!! ES DARF KEINE 2 GEBEN !!! MEINE WELT GEHT UNTER!!! *umfall TOT*
Ticha
 
Posts: 94
Joined: 18. January 2006 14:23

Postby Ticha » 02. May 2006 23:43

Mein Problem:

also ich möchte überprüfen, ob mein Server zu hause on ist. (da ich den nur von Zeit zu zeit an habe) Deswegen möchte ich ein Script auf einem kostenlosen Webspace schrieben, dass dies Überprüft. Mit der obigen abfrage funktioniert das nur Lokal. Aber wie semtex ja schon gesagt hat, funktioniert mein system nicht :(

Hat jmd eine ander möglichkeit. Ich müsste Prüfen ob der TS Server läuft, der apache und der SQL.

Leider weiss ich jetzt keinen rat mehr... :roll:
1101011010101110100010101010101101
0101011010101110101010101111100010
0011010101111000100101010101010111
1110100011010101001010101102011001

2??? EINE 2??? AHHH ES GIBT KEINE 2!!! ES DARF KEINE 2 GEBEN !!! MEINE WELT GEHT UNTER!!! *umfall TOT*
Ticha
 
Posts: 94
Joined: 18. January 2006 14:23

Postby h0n1g » 03. May 2006 07:46

Nagios ist ganz schön, jedenfalls für mich zu hause, aber auch nur zum rumspielen...

Habe vergessen zu erwähnen das es Windows Server sind, die beim Hochfahren einen FTP Server als Dienst starten.

Habe folgendes probiert


Code: Select all
$server['ip'];
$server['port'];

$fp = fsockopen($server['ip'], $server['port'], $errno, $errstr, 30);
if(!$fp) {
     echo '<img src="images/symbols/offline.gif" title="'.$server['name'].' offline"';
} else {
     echo '<img src="images/symbols/online.gif" title="'.$server['name'].' online"';
     fclose($fp);
}


Funktioniert soweit ganz gut, jedefalls bis ich einen FTP-Server als Dienst installiere, nun sagt er mir inzwischen das der Server immer online sei.

Wenn ich den Dienst ausschalte und den Server Manuell starte, dann funktioniert alles ohne Probleme...

Aber Danke euch, das Problem liegt jetzt wohl nicht mehr bei PHP, eher an Windows oder dem Testserver.
Jeder weiß selbst was er tut, aber wissen es auch andere ?
h0n1g
 
Posts: 16
Joined: 11. July 2005 10:21
Location: Pinneberg (Hamburg)

Postby Ticha » 03. May 2006 21:59

bei mir ist dasselbe Problem. Bei mir sagt er, dass der Server auch immer an ist, obwohl ich ihn heruntergefahren habe.

vielleicht kennt jmd noch eine andere möglichkeit :roll:

mfg Ticha
1101011010101110100010101010101101
0101011010101110101010101111100010
0011010101111000100101010101010111
1110100011010101001010101102011001

2??? EINE 2??? AHHH ES GIBT KEINE 2!!! ES DARF KEINE 2 GEBEN !!! MEINE WELT GEHT UNTER!!! *umfall TOT*
Ticha
 
Posts: 94
Joined: 18. January 2006 14:23

Postby thorsin » 10. May 2006 04:53

versuch auf die ports zu connecten, auf denen die dienste laufen (muss mit php ja irgendwie gehen). wenn eine verbindung zustande kommt kannste sie direkt wieder schliessen und weisst, dass dein dienst läuft.
User avatar
thorsin
 
Posts: 136
Joined: 05. March 2006 20:39


Return to PHP

Who is online

Users browsing this forum: No registered users and 4 guests