Serverstatus ausgeben

Mit diesem Skript kann auf einem Server die Verbindungen überprüft werden. In meinem Beispiel habe ich da einfach localhost genommen. Somit habe ich meinen lokalen Server angesprochen. Falls man den Code auf dem online Webserver ausführen möchte, gibt man dort die gewünschte URL an.

<?php

//(c)2017 - 2021 Copyright by Marc Disch - All right reserved

// Timeout angeben
$timeout = "1";

//localhost muss mit der Serveradresse ersetzt werden

$port[1] = "80";       $service[1] = "Apache Webserver";        $ip[1] ="localhost";
$port[2] = "21";       $service[2] = "FTP";                 	$ip[2] ="localhost";
$port[3] = "3306";     $service[3] = "MYSQL Server";            $ip[3] ="localhost";
$port[4] = "80";       $service[4] = "Internet Connection";     $ip[4] ="localhost";


//Array
//Bei jedem Durchlauf wird der nächste $port abgerufen
$ports = count($port);
$ports = $ports + 1;
$count = 1;

//Schleife
while($count < $ports){

     if($ip[$count]==""){
       $ip[$count] = "localhost";
     }

        $fp = @fsockopen("$ip[$count]", $port[$count], $timeout);

//falls if nicht zutrifft wird else ausgeführt

        if (!$fp) {

//falls keine Verbindung besteht wird rot Offline angezeigt
            $data .= "<span>$service[$count]: </span><span style='color:red'>Offline</span><br>";
            
        } else {

//falls eine Verbindung besteht wird grün Online angezeigt
            $data .= "<span>$service[$count]: </span><span style='color:green'>Online</span><br>";
         
        }
    $count++;

} 

// Ausgabe
echo $data;

?>

So sieht dann das Ergebnis aus:

Da ich derzeit lokal nur apache2 und php7 gestartet habe, wird nicht alles als Online angezeigt.

Natürlich kann das noch ausgebaut werden. Es würde durchaus Sinn machen eine Nachricht zu schicken falls etwas ausfällt damit man schnell reagieren kann. Eine E-Mail zu senden wäre daher Sinnvoll.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.