tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
822
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Oct 2002
    Ort
    Eckernförde, S.-H.
    Beiträge
    623
    Moin Moin,

    da mein Router (BR-41 von Jetway) keine Logs über fehlgeschlagene Verbindungen führt, habe ich beschlossen, ein Script zu basteln, welches in bestimmten Abständen die Verfügbarkeit einer Site prüfen soll.
    Der Grund liegt darin begründet, dass mein ISP ODER mein Router sporadisch die Verbindung kappt.
    Da ich den ISP in Verdacht habe, würde ich das gerne belegen können

    Nun zum Problem:
    Wie mache ich eine Schleife, die nur jede Minute ausgeführt wird?
    Bin ehrlich gesagt mit den Zeitstempeln und deren Formatierung etwas überfordert.

    Hier der bisherige Code:
    PHP-Code:
    <?php
    while ($a =="") {                                                           //Endlos-Schleife, aber nicht gut
    $zeit =date ("G:i:s ");                                                    //Ausgabe der Zeit festlegen   
    $fp fsockopen ("www.versatel.de"80$errno$errstr10); //Verbindung aufbauen       
    if (!$fp) {                                                                       //Wenn Site nicht erreichbar
       
    echo "$zeit --- $errstr --- ($errno)<br /><br />";             //Fehler ausgeben
    }                                                                                  
    fclose($fp);                                                                   //Verbindung schliessen  
    }
    ?>
    Ich habe, wie man sieht, derzeit eine Endlos-Schleife am Laufen, was so zwar halbwegs funktioniert, aber nicht sinnig ist, da zuviele Ressource benötigt werden oder das Script abbricht.
    Wie kann ich hier klug ansetzen, um nur jede Minute einen Durchgang zu starten?

    Gruss Eiszwerg
     

  2. #2
    Avatar von Ben Ben
    Ben Ben Ben Ben ist offline Mitglied Rubin
    Registriert seit
    Dec 2003
    Ort
    Raum FFM
    Beiträge
    1.364
    Das ganze ding macht dahingehen keinen Sinn, da du ja ne max. Execution time hast die du entsprechend hoch setzen müsstest.
    Ich würde daher eher einen Scheduler Dienst oder cron / anacron unter Linux nehmen, der das Script einmal pro Minute aufruft.
     

  3. #3
    Registriert seit
    Oct 2002
    Ort
    Eckernförde, S.-H.
    Beiträge
    623
    Leider habe ich diese tollen Möglichkeiten nicht.
    Sonst würde ich nicht nach eben dieser Lösung fragen.
    Trotzdem danke für den Tipp
     

  4. #4
    Registriert seit
    Oct 2002
    Ort
    Eckernförde, S.-H.
    Beiträge
    623
    Habe das Ganze nun doch so gelöst, dass ich die Ergebnisse in eine DB schreibe.
    Die Site wird per meta-Tag-Reload erneut geöffnet.

    Für Interessierte:
    PHP-Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <title>Verf&uuml;gbarkeit einer bestimmten Site ... by www.my-zwerg.de</title>
        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
        <meta http-equiv="refresh" content="60; url=http://www.my-zwerg.de/router/index.php">
      </head>
      <body>
        <?
        $fp 
    fsockopen ("www.my-zwerg.de"80$errno$errstr15); 
        
    $zeit=date("H:i:s");
        if (!
    $fp) {
                  echo 
    "<P style=\"color:FF0000;\">$zeit ::: $errstr ($errno) ... <b>Eintrag erstellen</b></P><br />";
                  include (
    "vars.php");
                  
    mysql_connect ($server,$user,$pw) or die ("Es besteht keine DB Verbindung :o(");
                  
    $dbanfrage "INSERT INTO $table1 VALUES ('0','$zeit','$errstr','$errno')";
                  
    $result mysql_db_query ($db$dbanfrage) or die (mysql_error());
            } else {
            echo 
    "<P style=\"color:228B22;\">$zeit ::: Alles Okay ... <b>Kein Eintrag</b></P><br />";
            
    fclose($fp);
        } 
        include (
    "vars.php");
        
    mysql_connect ($server,$user,$pw) or die ("Es besteht keine DB Verbindung :o(");
        
    $dbanfrage "SELECT * FROM $table1 ORDER BY id DESC";
        
    $result mysql_db_query ($db$dbanfrage);
        echo
    "<br><br><b>History Logfile</b>";
        echo 
    "<table>";
        echo 
    "<tr><td><b>Zeit</b></td><td><b>Fehlerbeschreibung</b></td><td><b>Fehlernummer</b></td></tr>";
        while (
    $Ausgabe mysql_fetch_array ($result))
        {
            echo 
    "<tr><td>$Ausgabe[zeit]</td><td>$Ausgabe[fehler]</td><td>$Ausgabe[nummer]</td></tr>";
        }
        echo
    "</table>";
        
    ?>
      </body>
    </html>
    Leider sieht es hier nicht so geordnet aus wie bei mir
     

Ähnliche Themen

  1. prüfen, ob Internetverbindung besteht
    Von Nukleo im Forum VisualStudio & MFC
    Antworten: 1
    Letzter Beitrag: 23.11.08, 17:10
  2. Internetverbindung prüfen
    Von drob im Forum Java
    Antworten: 1
    Letzter Beitrag: 12.03.08, 14:21
  3. 2 Formulare mit einem Script prüfen
    Von Boof im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 04.12.05, 01:20
  4. Internetverbindung zur Laufzeit prüfen
    Von icomedia im Forum .NET Archiv
    Antworten: 1
    Letzter Beitrag: 11.08.04, 13:55
  5. Java Internetverbindung prüfen
    Von Jack im Forum Java
    Antworten: 2
    Letzter Beitrag: 08.07.02, 21:08