[gelöst] FHEM-Logfile durchsuchen

Begonnen von McShire, 25 Januar 2018, 23:29:03

Vorheriges Thema - Nächstes Thema

McShire

Hallo alle zusammen,

ich möchte gerne die Logdatei von FHEM (bei mir fhem-2018-01.log) nach bestimmten Wörtern durchsuchen.
Beispiel: alle Netzwerkunterbrechungen finden, in dem nach dem Wort "Netzwerk" gesucht wird.
Mit grep funktioniert das bei mir nicht. Ich erhalte als Ergebnis eine leer Liste mit der Überschrift "Übereinstimmungen in Binärdatei <filespec>".
Wieso Binärdatei, die Logdateien sind doch Textdateien.

Anweisung 1: grep "Netzwerk" /opt/fhem/fhem-2018-01.log
Anweisung 2: cat /opt/fhem/fhem-2018-01.log | grep "Netzwerk"
Beides geht nicht.

Was muss ich tun, um alle Zeilen mit dem Wort "Netzwerk" angezeigt zu bekommen.
Vielen Dank für Eure Hilfe.
Viele Grüße
Werner

KernSani

hab's gerade mal schnell ausprobiert:


pi@FHEM /opt/fhem/log $ grep "PRESENCE" fhemlog-2018-01-25.log
2018.01.25 20:51:01 1: UPD FHEM/73_PRESENCE.pm
2018.01.25 20:51:03 1:   - change:  73_PRESENCE: following attributes were renamed:
2018.01.25 20:51:03 1:   - feature: 73_PRESENCE: new set commands overrideInterval and clearOverride


pi@FHEM /opt/fhem/log $ cat fhemlog-2018-01-25.log | grep "PRESENCE"
2018.01.25 20:51:01 1: UPD FHEM/73_PRESENCE.pm
2018.01.25 20:51:03 1:   - change:  73_PRESENCE: following attributes were renamed:
2018.01.25 20:51:03 1:   - feature: 73_PRESENCE: new set commands overrideInterval and clearOverride


RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

P.A.Trick

Ich habe mir dafür einen Alias erstellt!

defmod c_greplog cmdalias greplog .* AS {qx(grep -i \'$EVENT\' log/*.log)}
attr c_greplog room _CmdAlias



Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

McShire

Danke für den Tip.
Ich bin leider noch Anfänger und verstehe leider nicht genau, was die erste Zeile bewirkt und wie ich dann Stichworte finden kann.
Kannst Du das für mich Laien bitte weiter ausführen.
Danke
Gruß
Werner

McShire

Hallo KernSani,
Bei mir funktioniert das leider nicht, warum auch immer.
Die Wörter kann ich im nano Editor mit <Strg> problemlos finden, also sind sie auch da.
aber eine Zusammenfassung mit grep geht nicht.
Stutzig macht mich, dass von einer Binärdatei die Rede ist und nicht von einer Textdatei.
Gruß
Werner

P.A.Trick

Gib den Befehl(e) in die Befehlszeile oben ein.
Danach kannst du den alias

greplog <SUCHWORT> direkt oben in der Befehlszeile eingeben und die Ausgabe erscheint im Browser!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

McShire

Mit den Logfiles für die Geräte funktioniert grep richtig und gibt die korrekte Liste aus, aber eben nicht mit der FHEM-Logdatei.

McShire

Hallo P.A.Trick,
habe ich eingegeben. Ich mache das am WEB frontend am PC
Scheinbar durchsucht greplog auch alle logfiles, aber ich bekomme im Web Frontend keine Ausgabe.
Zur Sicherheit habe ich dann noch einmal den kompletten Pfad /opt/log/*log statt log/*log eingegeben.
Aber es tut sich nichts. Auch nicht bei Wörtern in den Geräte-logfiles, bei denen grep ja funktioniert.
Etwas funktioniert mit der Ausgabe nicht
Gruß
Werner

Christoph Morrison

Zitat von: McShire am 26 Januar 2018, 00:03:15
Mit den Logfiles für die Geräte funktioniert grep richtig und gibt die korrekte Liste aus, aber eben nicht mit der FHEM-Logdatei.

Was sagt file /opt/fhem/fhem-2018-01.log?
Und was sagt od --format=x1 --read-bytes=10 /opt/fhem/fhem-2018-01.log?

McShire

hallo C. M.
auf file /opt/... kommt die Antwort: /opt/fhem/fhem-2018-01.log: data
auf od --format=x1 ... kommt seltsamerweise die Antwort: Datei oder Verzeichnis nicht gefunden.
Ich habe die Schreibweise mehrfach überprüft. Das Ergebnis ist immer das gleiche
Gruß
Werner

Wernieman

Also eigentlich sollte so etwas kommen:
file /opt/fhem/log/fhem-2018-01.log
/opt/fhem/log/fhem-2018-01.log: ASCII text, with very long lines

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Ralf W.

Versuch einmal grep -a Netzwerk /opt/fhem/fhem-2018-01.log ...
Proxmox Nipogi AM16, FHEM:RaspberryMatic:DE ConBee II, diverse Sensoren und Aktoren.

McShire

Das Alias funktioniert jetzt. Man muss nur sehr, sehr lange warten wegen der Dateigrösse.
Aber die Ausgabe ist die gleiche wie bei grep direkt, keine Übereinstimmun gefunden.


McShire

 :) :) :)
Danke allen für die Tips.
Der letzte war erfolgreich.
grep mit der option -a funktioniert, ich bekomme alle Zeilen mit Datum und Uhrzeit angezeigt, in denen keine Verbindung zu Netatmo aufgebaut werden konnte und das Netzwerk nicht available war.
Die Telekom wird sich freuen.
Gruß an alle
Werner

Christoph Morrison

Zitat von: McShire am 26 Januar 2018, 12:47:32
grep mit der option -a funktioniert

Du solltest trotzdem versuchen rauszufinden, warum dein Log angeblich eine Binärdatei ist. Bei mir ist er das nämlich nicht und ich sehe auch keinen Grund, warum der Logfile plötzlich binary sein sollte.