LTE Status Log auf externem Webserver

      LTE Status Log auf externem Webserver

      Hallo Gemeinde,

      ich wollte die von sphltelog.sh erstellten lokalen Logs gleich an einen externen Webserver übergeben.

      Vorraussetzung:
      - Webserver mit PHP und Schreibrechten einer Datei über PHP
      - Telnet / Bootstrap ab FW-Version 3 - Hardware-Serial-COM
      - libiconv.so aus der FW-V3 (um sphfreq-Probleme zu lösen...) ab Firmware v4.0.5
      - zweite Zeile im cron auskommentieren (# entfernen), damit sphltelog.sh jede Minute ausgeführt wird

      Quellcode

      1. vi /opt/etc/cron.d/root

      Also ab in die SSH-Console des SPH und die sphltelog.sh angepasst:

      Quellcode

      1. vi /opt/bin/sphltelog.sh

      Ich habe die dritte Zeile mit dem echo kommentiert (#) und folgende Zeile eingefügt:

      Quellcode

      1. wget -g -l /dev/null -P 1234 -r "/datei.php?$(echo $(date +%Y%m%d%H%M) $(sphfreq show | busybox-mips tail -n 12 | cut -d ':' -f 2 | grep '[0-9\-]' | grep -v '>') | sed 's/\ /\&/g')" 192.168.2.100 > /dev/null

      Folgende Parameter müssen ggf. angepasst werden:
      - die aufzurufende Datei, im Beispiel "datei.php" genannt, welche auf dem Webserver liegt und aufgerufen wird
      - die WebServerIP, im Beispiel ist es die Fritzbox (192.168.2.100), welche die Weiterleitung zum lokalen Webserver übernimmt
      - der Port, im Beispiel 1234; Der dazugehörige Parameter -P von wget war bei mir nur für die lokale Version notwendig. In der Fritzbox wird dieser Port von 1234 auf den Port 80 eines lokalen Servers geleitet. 192.168.2.100:1234 auf z. B. 192.168.178.5:80

      Für einen externen Webserver mit lauschendem Port 80 kann der Parameter -P 1234 entfallen. Die interne IP kann auch durch eine Domain ersetzt werden. Eine mögliche Vereinfachung beim Aufruf der URL wäre, dass man das wget vom busybox-mips verwendet. Ich sah dafür aber keine Notwendigkeit.

      Die Datei "datei.php" auf dem Webserver ist wie folgt aufgebaut:

      PHP-Quellcode

      1. <?php
      2. # Timestamp - Freq - LTEBand - CellID - RSRP - RSRQ - RSSI - PLMN - LAC - RAC - CELL_ID
      3. $fp = fopen('sphltelog.txt', 'a+');
      4. $aV = "";
      5. foreach($_GET as $key => $value)
      6. $aV .= $key." ";
      7. fwrite($fp, trim($aV)."\n");
      8. fclose($fp);
      9. ?>


      Die shpltelog.txt ist dann die eigentliche /opt/logdata/lte.log vom SPH ohne diese obigen Anpassungen. Man könnte diese auch direkt an rrd übergeben oder in eine Datenbank oder oder oder.

      Ein Vorteil der sonstigen Lösungen ist, dass der SPH bezüglich des Logins nicht geblockt wird und das Schreiben der Logs den USB-Stick nicht belastet.

      Mein Dank geht an jene, welche beim Aufbohren der SPH mitgewirkt haben. Dankeschön!