.log Datei überprüfen ob sich letzte Zeile immer ändert ?


DerTrojaner

Mitglied
Moin zusammen,

ich habe ein Problem nur leider weiß ich nicht weiter beziehungsweise habe keinen Anhaltspunkt.

Und zwar ziehe ich via. SMB von einigen SPS´s einige Daten, die Daten sind Nummern.

Die Nummern speichere ich in eine .log Datei. Die .log Datei füllt sich mit den Nummern die gescannt wurden und dementsprechend in der SPS befinden und dann in der .log datei.

Zusammengefasst: Scanner schickt Nr. an -> SPS -> Ich lese aus der SPS die Nummer in die .log Datei.


Auf der Webseite gebe ich immer die letzte Zeile der .log datei aus. Damit ich auch immer die aktuellste Zahl sehen kann, aktualisiere ich die Seite mit <metta http-equiv="Refresh" content=".........................................>.

Nun will ich aber das die Webseite knall ROT leuchtet wenn er merkt, das die Zahl sich seit "x" Sekunden nicht mehr geändert hat. Wie kann ich das umsetzen ? Geht das überhaupt ?

Code:
      <div class="Box">
        <?php
          $file = escapeshellarg('/home/shares/cron/cron_filtered/band-' . date('d') . '.log' );
          $last_line = `tail -n 1 $file`;
          echo '<span style="font-size:xxx-large ; font-weight: bold; align:center">'.$last_line.'</span>';
        ?>
 
Zuletzt bearbeitet:

Technipion

Erfahrenes Mitglied
Ah, also deine Seite aktualisiert sich, sagen wir mal jede Sekunde, selbst.
Du könntest z.B. beim Aktualisieren in der URL zwei Parameter mitgeben, was die aktuell letzte Zahl ist, und wie oft diese schon gezählt wurde.
Diese Parameter holst du dir in php mit $_GET und entweder:
  • Du hast diese SPS Nummer schon einmal gesehen -> erhöhe den Zähler und rufe dich selbst wieder auf
  • Die aktuelle SPS Nummer ist neu -> setze den Zähler auf 0 und rufe dich selbst auf
  • Das Zähler-Limit wurde überschritten -> Alarmstufe ROT
Gruß Technipion

PS: Eleganter ist es natürlich, einen Timestamp (UTC) zu übergeben.