Sponsor-Board.de
Serverüberwachung - Script

+- Sponsor-Board.de (https://www.sponsor-board.de)
+-- Forum: Community (/forumdisplay.php?fid=56)
+--- Forum: Hilfe (/forumdisplay.php?fid=102)
+---- Forum: Scripting (/forumdisplay.php?fid=108)
+---- Thema: Serverüberwachung - Script (/showthread.php?tid=52101)


Serverüberwachung - Script - Lukbec - 21.11.2014 15:00

Hey,

kann mir jemand weiterhelfen?
Ich würde gerne bei einem Serverausfall eine SMS bekommen.

Mein bisheriger Code:

Code:
<?php

    $server = "google123.de"; //Hostname oder IP
    $port1  = "80"; //HTTP
    $port2  = "21"; //FTP
    $port3  = "2083"; //MySQL
    $port4  = "25"; //SMTP
    $port5  = "110"; //POP3
    $port6  = "143"; //IMAP

    //HTTP SERVER AUF FUNKTION TESTEN  
    $http = @fsockopen($server, $port1);

    if (!$http)
    {
       $httpstatus = 'nicht erreichbar';
    }else {
       $httpstatus = 'erreichbar';
    }


    //FTP SERVER AUF FUNKTION TESTEN  
    $ftp = @fsockopen($server, $port2);

    if (!$ftp)
    {
       $ftpstatus = 'nicht erreichbar';
    }else {
       $ftpstatus = 'erreichbar';
    }


    //MySQL SERVER AUF FUNKTION TESTEN  
    $mysql = @fsockopen($server, $port3);

    if (!$mysql)
    {
       $mysqlstatus = 'nicht erreichbar';
    }else {
       $mysqlstatus = 'erreichbar';
    }


    //SMTP SERVER AUF FUNKTION TESTEN  
    $smtp = @fsockopen($server, $port4);

    if (!$smtp)
    {
       $smtpstatus = 'nicht erreichbar';
    }else {
       $smtpstatus = 'erreichbar';
    }


    //POP3 SERVER AUF FUNKTION TESTEN  
    $pop3 = @fsockopen($server, $port5);

    if (!$pop3)
    {
       $pop3status = 'nicht erreichbar';
    }else {
       $pop3status = 'erreichbar';
    }


    //IMAP SERVER AUF FUNKTION TESTEN  
    $imap = @fsockopen($server, $port6);

    if (!$imap)
    {
       $imapstatus = 'nicht erreichbar';
    }else {
       $imapstatus = 'erreichbar';
    }

    if ($httpstatus == 'nicht erreichbar'or $ftpstatus == 'nicht erreichbar'or $mysqlstatus == 'nicht erreichbar'or $smtpstatus == 'nicht erreichbar'or $pop3status == 'nicht erreichbar'or $imapstatus == 'nicht erreichbar'){
        
    $sender_name            = "Serverüberwachung";

    $empfänger_mail_adresse = ""; //Mailadresse

    $nachricht = "Folgende Serverdienste sind auf dem Server: $server ausgefallen bzw. nicht erreichbar:
    HTTP: $httpstatus an Port: $port1
    FTP: $ftpstatus an Port: $port2
    MySQL: $mysqlstatus an Port: $port3
    SMTP: $smtpstatus an Port: $port4
    POP3: $pop3status an Port: $port5
    IMAP: $imapstatus an Port: $port6
    ";

    $betreff   = "Serverprobleme";

    $headers .= "From: ".$sender_name."";

    if (mail($empfänger_mail_adresse, $betreff, $nachricht, $headers));
    }
?>


Die SMS soll über sloono.de verschickt werden.

Bedanke mich schonmal für die Hilfe Smile


RE: Serverüberwachung - Script - Storage-Base.de - 21.11.2014 15:08

[Link: Registrierung erforderlich]


RE: Serverüberwachung - Script - Lukbec - 21.11.2014 15:10

Schon gesehen, hilft mir leider gar nicht weiter..
Den Aufbau verstehe ich, aber nicht wie die SMS versendet wird.


RE: Serverüberwachung - Script - Storage-Base.de - 21.11.2014 15:12

Du musst einfach nur die URL aufrufen, also z.B. mit [Link: Registrierung erforderlich]

Mehr nicht. Die URL passt du vorher halt entsprechend deinem Wunschtext an.


RE: Serverüberwachung - Script - Lukbec - 21.11.2014 15:16

Die Daten gibt man an:

Code:
$suser = "Username";            // Nickname
$spw = "Passwort";            // Accountpasswort
$styp = 2;                // Test: Pro-SMS

$smstext = "Testtext: Hallo Süße! Schlaf schön&träum' was Süßes!";
$ziel = "+49(160)123456";        // Zielrufnummer, bitte einstellen!
$absender = ABSENDER_Handynummer;    // Test: Handynummer


Und damit verschickt man dann die SMS:

Code:
$ret = curlhttp("http://www.sloono.de/API/httpsms.php?user=".urlencode($suser)."&password=".$spw."&typ=".$styp."&text=".urlencode(utf8_decode($smstext))."&to=".urlencode($ziel)."&from=".$absender."


Oder?
Klappt bei mir nicht.


RE: Serverüberwachung - Script - Storage-Base.de - 21.11.2014 15:30

Klar funktioniert das nicht. Du kannst ja nicht einfach das Script auseinander reissen und erwarten, dass es funktioniert. Du hast die Funktion "curlhttp" nicht eingebunden.


RE: Serverüberwachung - Script - Lukbec - 21.11.2014 15:39

Ich brauch aber keine erneute Abfrage, sondern er soll die SMS senden, wenn der EMail befehl ausgeführt wird.


RE: Serverüberwachung - Script - Storage-Base.de - 21.11.2014 15:56

Storage-Base.de schrieb:
Du musst einfach nur die URL aufrufen, also z.B. mit [Link: Registrierung erforderlich]

Mehr nicht. Die URL passt du vorher halt entsprechend deinem Wunschtext an.


Da steht doch alles!?

Du musst einfach deine Werte in die URL Eintragen und aufrufen, nicht mehr... Oder nimm halt das Beispiel - dafür ist es ja da. Da werden halt die Werte auch direkt formatiert wie sie dann auch akzeptiert werden.


RE: Serverüberwachung - Script - Lukbec - 21.11.2014 16:01

Das hilft mir nicht weiter.
Ich rufe doch die URL auf.

Und zwar damit:

Code:
$ret = curlhttp("http://www.sloono.de/API/httpsms.php?user=".urlencode($suser)."&password=".$spw."&typ=".$styp."&text=".urlencode(utf8_decode($smstext))."&to=".urlencode($ziel)."&from=".$absender."




RE: Serverüberwachung - Script - Aaron - 21.11.2014 16:26

willst du es nicht verstehen ?
Wo wird denn curlhttp() definiert ?

Und was heist klappt nicht, welche Fehler kommen ?

[Link: Registrierung erforderlich]


RE: Serverüberwachung - Script - Lukbec - 21.11.2014 16:29

Es kommen keine Fehler, die SMS wird einfach nicht gesendet.


RE: Serverüberwachung - Script - phenomax - 21.11.2014 17:11

Füge bitte mal zu Beginn deines Skriptes das hier ein:

Code:
error_reporting(-1);
ini_set('display_errors', 'On');

So sollten alle PHP Fehler angezeigt werden.
Denn ich bezweifele, dass es keinen Fehler gibt Smile

LG
Max


RE: Serverüberwachung - Script - Storage-Base.de - 21.11.2014 18:19

Wie ich und Aaron nun bereits anmerkten, die Funktion "curlhttp" wird nicht definiert, daher scheitert das aufrufen der URL - Halte dich doch bitte einfach an die Beispiele oder nutze alternativ Funktionen wie z.B. file_get_content...


RE: Serverüberwachung - Script - phenomax - 21.11.2014 18:24

Storage-Base.de schrieb:
Wie ich und Aaron nun bereits anmerkten, die Funktion "curlhttp" wird nicht definiert, daher scheitert das aufrufen der URL

Ergo:

Code:
function curlhttp($url,$post = false) {
    if($url == "") return false;
    $VersionArray = curl_version();
    $Optionen = array(CURLOPT_RETURNTRANSFER => true, CURLOPT_HEADER => 0, CURLOPT_USERAGENT => "PHP ".phpversion()." + cURL ".$VersionArray["version"], CURLOPT_TIMEOUT => 30);
    if($post != false) {
        $Optionen[CURLOPT_POST] = 1;
        $Optionen[CURLOPT_POSTFIELDS] = $post;
    }
    $s = curl_init($url);
    foreach($Optionen as $CURLCONST => $Wert) curl_setopt($s,$CURLCONST,$Wert);
    $Quellcode = curl_exec($s);
    $StatusArray = curl_getinfo($s);
    $HttpHead = array(100 => "Continue", 101 => "Switching Protocols", 200 => "OK", 201 => "Created", 202 => "Accepted", 203 => "Non-Authoritative Information",
                      204 => "No Content", 205 => "Reset Content", 206 => "Partial Content", 300 => "Multiple Choices", 301 => "Moved Permanently",
                      302 => "Found", 303 => "See Other", 304 => "Not Modified", 305 => "Use Proxy", 306 => "(Unused)", 307 => "Temporary Redirect",
                      400 => "Bad Request", 401 => "Unauthorized", 402 => "Payment Required", 403 => "Forbidden", 404 => "Not Found", 405 => "Method Not Allowed",
                      406 => "Not Acceptable", 407 => "Proxy Authentication Required", 408 => "Request Timeout", 409 => "Conflict", 410 => "Gone",
                      411 => "Length Required", 412 => "Precondition Failed", 413 => "Request Entity Too Large", 414 => "Request-URI Too Long",
                      415 => "Unsupported Media Type", 416 => "Requested Range Not Satisfiable", 417 => "Expectation Failed", 500 => "Internal Server Error",
                      501 => "Not Implemented", 502 => "Bad Gateway", 503 => "Service Unavailable", 504 => "Gateway Timeout", 505 => "HTTP Version Not Supported");
    return array("HTTP_Code" => $StatusArray["http_code"], "HTTP_Text" => $HttpHead[$StatusArray["http_code"]], "HTTP_Body" => $Quellcode);
}

[Link: Registrierung erforderlich]

LG
Max