Ankündigung

Einklappen
Keine Ankündigung bisher.

php -> prüfen ob server(router) erreichbar

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • php -> prüfen ob server(router) erreichbar

    Hi,

    ich müsste mehrere server (20, 30 und mehr..) auf verfügbarkeit prüfen.
    alle server werden dann in einer liste nacheinander aufgelistet.

    welche möglichkeiten habe ich hier?

    ich könnte natürlich alle server(router) per ping anfragen. jedoch dauert dies ja sehr lange weil er alle server ersteinmal anpingen muss.
    das ganze asynchron zu gestalten (daher den ping befehl nicht nacheinander sondern bei allen server gleichzeitig zu starten) gibt es nicht ?

    wäre fsockopen hier die bessere wahl? (wobei ich gelesen hab das wenn der server nicht reagiert das ganze sehr lange dauert?? )

    danke für eure tipps!

    grüße


  • #2
    Zitat von taurus Beitrag anzeigen
    wäre fsockopen hier die bessere wahl? (wobei ich gelesen hab das wenn der server nicht reagiert das ganze sehr lange dauert?? )
    Preisfrage: Wofür gibt es wohl den timeout-Parameter?

    Kommentar


    • #3
      ping (bzw. das ICMP Protokoll) kann gesperrt werden.

      für fsockopen (oder überhaupt eine Socketverbindung) brauchst du eine Anwendung, die auf einen bestimmten Port horcht.

      Definiere "Verfügbarkeit" genauer... was soll verfügbar sein? Ein Webserver?
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      Kommentar


      • #4
        ping (bzw. das ICMP Protokoll) kann gesperrt werden.
        wäre hier nicht relevant weil die router das nicht gesperrt haben bzw das unsere installation ist...

        für fsockopen (oder überhaupt eine Socketverbindung) brauchst du eine Anwendung, die auf einen bestimmten Port horcht.
        auf den servernlaufen webserver die von aussen auch erreichbar sind... daher port 80

        Definiere "Verfügbarkeit" genauer... was soll verfügbar sein? Ein Webserver?
        korrekt, am besten prüfen ob der webserver erreichbar ist oder am besten beides webserver + router.
        an den server angeschlossene computer kann ich ja von aussen nicht auf verfügbarkeit prüfen... (leider)

        Kommentar


        • #5
          PHP-Code:
          <?php
          if(!ftp_connect("169.23.123.25")){
          // nicht online
          } else {
          // online
          ?>
          Und das mit jedem? =P

          Kommentar


          • #6
            die problematik ist schlicht diese:

            er hat das sehr genau beschrieben...
            mit ftp_connect wäre es ja genauso (sagen wir timeout 5sec...)

            PHP-Code:
            <tr><td>server 1 erreichbar:</td>
            <td><?php
            if(!ftp_connect("169.23.123.25")){
            // nicht online
            } else {
            // online
            ?> </td>
            </tr>
            <tr><td>server 2 erreichbar:</td>
            <td><?php
            if(!ftp_connect("169.23.123.25")){
            // nicht online
            } else {
            // online
            ?> </td>
            </tr>
            d.h. die zweite zeile server2... baut sich erst auf wenn das erste ftp_connect durchlaufen ist...
            oder habe ich da was übersehen?

            Kommentar


            • #7
              exec() ohne auf ende warten | aus Forum PHP | wer-weiss-was

              Kommentar


              • #8
                Ohne Nebenläufigkeit bekommst du keine Parallelität hin, d.h. du kannst nicht den zweiten Aufruf starten, bevor der erste fertig ist.

                Einen Batch müsste man nicht aus PHP heraus starten, der könnte im Scheduler/cron job alle x Minuten laufen und die Liste der verfügbaren Server aktualisieren (welche du dann mit einem PHP Script weiterverarbeiten kannst).
                Code:
                Adresse des Servers, Status, Timestamp der letzten Prüfung
                naja, und es gibt noch Tools, die schicken dir ne SMS/Email, sollte auf einem Server ein Dienst mal ausfallen (z.B. ServersAlive) Hilft natürlich nicht, wenn der gesamte Server tot wäre
                Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                Kommentar


                • #9
                  ein batch (mit allen servern gelistet) alle x min zu starten und dann die textdatei auszulesen scheint mir wohl das beste zu sein...

                  so werde ich das dann umsetzten

                  danke!

                  Kommentar

                  Lädt...
                  X