FHEM Forum

FHEM => Automatisierung => Thema gestartet von: cotecmania am 27 Juli 2016, 12:49:53

Titel: Benachrichtigung, wenn Logfile bestimmte Anzahl Zeilen überschreitet
Beitrag von: cotecmania am 27 Juli 2016, 12:49:53
Hallo,

ist es möglich zu erkennen, wenn das Tageslogfile eine bestimmte Zeilenanzahl überschreitet ?
Ich würde dann gerne eine email generieren ...

Gruss
Joe
Titel: Antw:Benachrichtigung, wenn Logfile bestimmte Anzahl Zeilen überschreitet
Beitrag von: Hans Franz am 27 Juli 2016, 13:11:50
{my $lf = InternalVal('global','currentlogfile','');;`grep  -c '.*' $lf`}

Gruß
Hans
Titel: Antw:Benachrichtigung, wenn Logfile bestimmte Anzahl Zeilen überschreitet
Beitrag von: cotecmania am 28 Juli 2016, 11:24:05
Hi,

Danke, hat funktioniert !

Hier der fertige DEF fuer ein AT mit Emailversand :

*13:00:00 { my $logfile = InternalVal('global','currentlogfile',''); my $ctr = `grep  -c '.*' $logfile`; $ctr =~ s/\n|\r//g; if ($ctr > 100) {SendMail('fritz@klein.de', 'FHEM Logfile hat zu viele Einträge', 'Zeilenanzahl Logfile: '.$ctr);}}

Gruss
Joe
Titel: Antw:Benachrichtigung, wenn Logfile bestimmte Anzahl Zeilen überschreitet
Beitrag von: betateilchen am 28 Juli 2016, 12:23:29
alternativ:


sed $= -n /path/file

oder auch:

wc -l /path/file





define test at *13:00 { no warnings "numeric";; \
my $f = InternalVal('global','currentlogfile','');; \
$f = qx(wc -l $f)+0;; \
SendMail(...bla...) unless $f < 100;; }

Titel: Antw:Benachrichtigung, wenn Logfile bestimmte Anzahl Zeilen überschreitet
Beitrag von: rudolfkoenig am 08 August 2016, 10:37:30
Habe FileLog ein eventOnThreshold Attribut spendiert:

ZitatIf set (to a nonzero number), the event linesInTheFile will be generated, if the lines in the file is a multiple of the set number. Note: the counter is only correct for files created after this feature was implemented. A FHEM crash or kill will falsify the counter.
Titel: Antw:Benachrichtigung, wenn Logfile bestimmte Anzahl Zeilen überschreitet
Beitrag von: StephanFHEM am 06 Mai 2017, 13:05:54
hallo,

leider hab ich bei mir das optische "Problem", dass nach einem set .. clear im Logfile zwar das Logfile geleert wird aber leider nicht die "LinesInTheFile" angepasst werden. Das müsste eigentlich doch auch wieder auf Null springen. Kann man das irgendwie auf den aktuellen/richtigen Wert bringen?

Grüße
Stephan

Titel: Antw:Benachrichtigung, wenn Logfile bestimmte Anzahl Zeilen überschreitet
Beitrag von: rudolfkoenig am 06 Mai 2017, 13:45:03
Habs gefixt.

Wuesste trotzdem gerne, welches konkrete Problem damit geloest wird.
Titel: Antw:Benachrichtigung, wenn Logfile bestimmte Anzahl Zeilen überschreitet
Beitrag von: StephanFHEM am 06 Mai 2017, 17:02:06
vielen Dank! ehrlich gesagt noch gar kein Problem. Ich nutze Lines in File für mich nur in der WEB-Oberfläche um abzuschätzen, ob ich die Logs mal wieder leeren sollte.
Das könnte man natürlich mit ner DOIF automatisieren -> wenn über 10000 Lines dann set ...clear... . oder ein AT immer Nachts alle Logs checken lassen...

Aber muss erst mal viele andere Dinge finalisieren:-)

edit: übrigens meine absolute Hochachtung vor diesem genialen Stück Software!