Tägliches Ausdünnen vom DbLog

Begonnen von ChristianH, 29 November 2017, 14:22:07

Vorheriges Thema - Nächstes Thema

ChristianH

Team,

ich hatte mit Novmber festgestellt, dass meine DbLog Db auf 1.8Gb angewachsen war. Es hat mich 2 Tage gekostet die auf eine normal Grösse zusammenzuschrumpfen. Ich habe nun am 16.11 folgendes aufgesetzt:

define db.ausduennen at *00:05:00 set myDbLog reduceLogNbl 15

und dachte, nun habe ich Ruhe.

Ich habe heute aber mal die logs angesehen und finde folgendes:

cat log/fhem-2017-11.log |grep reduceLogNbl
2017.11.16 14:30:48 3: DbLog myDbLog: reduceLogNbl requested with DAYS=10
2017.11.16 14:35:54 3: DbLog myDbLog: reduceLogNbl deleting 172779 records of day: 2017-10-31
2017.11.16 14:38:53 3: DbLog myDbLog: reduceLogNbl deleting 173538 records of day: 2017-11-01
2017.11.16 14:42:47 3: DbLog myDbLog: reduceLogNbl deleting 173702 records of day: 2017-11-02
2017.11.16 14:46:18 3: DbLog myDbLog: reduceLogNbl deleting 173033 records of day: 2017-11-03
2017.11.16 14:49:25 3: DbLog myDbLog: reduceLogNbl deleting 170820 records of day: 2017-11-04
2017.11.16 14:52:27 3: DbLog myDbLog: reduceLogNbl deleting 160216 records of day: 2017-11-05
2017.11.16 14:55:08 3: DbLog myDbLog: reduceLogNbl finished. Rows processed: 1100569, deleted: 1024088, time: 1460.53sec


was ist an meiner Definition falsch? Man sieht, dass NICHT wie erwartet jede Nacht um 00:05:00 die DB verkleinert wird.

Gruss & Danke

Christian

rabehd

#1
ZitatIch habe heute aber mal die logs angesehen und finde folgendes:
Glaube ich nicht.
Das sieht doch mehr danach aus, dass du set myDbLog reduceLogNbl gemacht hast und dann ins Log gesehen hast.

Du weisst, dass "reduceLogNbl" für jede Stunde einen Eintrag stehen lässt? Deine DB wird also nur langsamer größer.

Die Frage ist doch eher: Wird Dein at ausgeführt?
Dann müßte gegen 00:05 ja was im Log stehen.
Auch funktionierende Lösungen kann man hinterfragen.

ChristianH

Lach, genau das ist ja meine Erwartung ... daher der der pipe-grep auf die Logs ... da steht NICHTS zu 00:05 .... also wird mein AT nicht ausgeführt - warum also nicht?


rabehd

Dann passt der Titel nicht so recht  ::)

Das manuelle Ausführen des Befehls scheint ja zu funktionieren.
Es gibt gar keine Einträge im  Log um 00:05?
Kein Eintrag im Log beim Erstellen des at?

Böld gefragt: Das at ist nicht disabled?
Auch funktionierende Lösungen kann man hinterfragen.

marvin78

Bitte immer ein List ALLER beteiligten Devices anfügen. Dann bleibt so ein Ratespiel erspart.

ChristianH

hier mal der list db.ausduennen

Internals:
   COMMAND    set myDbLog reduceLogNbl 15
   DEF        *00:05:00 set myDbLog reduceLogNbl 15
   NAME       db.ausduennen
   NR         278
   PERIODIC   yes
   RELATIVE   no
   REP        -1
   STATE      Next: 00:05:00
   TIMESPEC   00:05:00
   TRIGGERTIME 1512083100
   TRIGGERTIME_FMT 2017-12-01 00:05:00
   TYPE       at
   Helper:
     DBLOG:
       state:
         myDbLog:
           TIME       1511891874.02452
           VALUE      Next
   READINGS:
     2017-11-30 00:05:00   state           Next: 00:05:00
Attributes:


ich sehe den Fehler nicht oder kann es sein, dass das NICHT in den logs auftaucht?

Christian

ChristianH

Guten Morgen,

gibt es den eine Möglichkeit irgendwie ins Log zu schreiben? Also so etwas wie:

set myDbLog reduceLogNbl 15 && echo "reduceLogNbl started" >> $LOG

Ich denke, der AT läuft wahrscheinlich, man sieht es bloss nicht im FHEM.log

Danke,

Chistian

rabehd

Klar kannst Du mehrere Befehle in ein at schreiben.
Log 3, "at wird ausgeführt";

Das wie sind Grundkenntnisse, da helfen Dir Wiki, commandref und Forum.
Auch funktionierende Lösungen kann man hinterfragen.

ChristianH

Also im Wiki habe ich dazu NICHTS gefunden und wie man einen LOG Eintrag manuel erstellt auch nicht

rabehd

#9
Zitatwie man einen LOG Eintrag manuel erstellt
Wozu manuel?

Meine Vermutung/Empfehlung wäre zum Zeitpunkt der Ausführung den Schaltbefehl auszuführen und einen Eintrag ins Log zu schreiben (Als Beweis das das at gelaufen ist)
Wie man einen Eintrag ins Log schreibt habe ich Dir schon gezeigt und im WIKI steht sogar bei at wie man mehrere Aktionen ausführt.
ZitatAlso im Wiki habe ich dazu NICHTS gefunden und wie man einen LOG Eintrag manuel erstellt auch nicht

Zuviel Glühwein?
Auch funktionierende Lösungen kann man hinterfragen.

ChristianH

Zitat von: rabehd am 03 Dezember 2017, 11:00:03
Wozu manuel?

Meine Vermutung/Empfehlung wäre zum Zeitpunkt der Ausführung den Schaltbefehl auszuführen und einen Eintrag ins Log zu schreiben (Als Beweis das das at gelaufen ist)
Wie man einen Eintrag ins Log schreibt habe ich Dir schon gezeigt und im WIKI steht sogar bei at wie man mehrere Aktionen ausführt.
Zuviel Glühwein?
Wahrscheinlich

Gesendet von meinem ONEPLUS A3003 mit Tapatalk