Logdateien diverser Geräte und Definitionen löschen

Begonnen von tik-tak-tok, 16 April 2017, 21:31:09

Vorheriges Thema - Nächstes Thema

tik-tak-tok

Hallo zusammen,

ich würde gerne (um möglichen Problemen aus Weg zu gehen) alte LOGs, welche älter als 2 Monate sind und nicht mehr in Nutzung sind) automatisch von FHEM löschen lassen.
Kann man dies über ein DOIF realisieren, falls ja, wie müsste der Code denn aussehen?

Habe in Google was gefunden:
archivecmd / archivedir / nrarchive
When a new FileLog file is opened, the FileLog archiver wil be called. This
happens only, if the name of the logfile has changed (due to time-specific
wildcards, see the FileLog section), and there is a new entry to be written
into the file.
If the attribute archivecmd is specified, then it will be started as a shell
command (no enclosing " is needed), and each % in the command will be
replaced with the name of the old logfile.
If this attribute is not set, but nrarchive and/or archivecmd are set, then
nrarchive old logfiles are kept along the current one while older ones are
moved to archivedir (or deleted if archivedir is not set).


Vielleicht kann man das ja dazu nutzen?
Ich möchte nicht nur LOGs von einem bestimmten Gerät ansprechen sondern global alle, denn alte LOGs welche eh nicht mehr in Nutzung sind brauche ich nicht.

Danke & Gruß

Otto123

Hi,

das steht nicht bei Google, das steht einfach in der Doku. Und wenn Du willst auch in deutsch  8)

Es handelt sich um ein Attribute, Du kannst diese mit einem regEx auch mit einem Mal auf mehrere "Geräte" anwenden/setzen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

tik-tak-tok

Hi Otto,

danke für deine Antwort.
Welches Attribut genau müsste ich denn nehmen/setzen?

Heißt das ich müsste im regEx jedes Gerät (welches betroffen sein soll) einmalig hinzufügen?

Ginge das nicht irgendwie nach dem Muster "wenn Datei 'log' enthält und älter als xy Tage und nicht mehr in Nutzung/letztes Änderungsdatum älter als xy Tage, dann löschen"?

Dankeschön :-)

Otto123

Mit dem Befehl attr FileLog.* nrarchive 5
setzt Du bei allen definitionen die mit FileLog beginnen das Attribute nrarchive auf 5, was dafür sorgt, dass nur 5 Logs aufgehoben werden.
Quelle https://fhem.de/commandref_DE.html#nrarchive

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

tomspatz

Ist es wohl auch möglich das "global" zu setzten?
Ich erreiche ja mit
attr FileLog.* nrarchive 5

Das alle BESTEHENDEN FileLog_ Definitionen gesetzt werden. Wenn allerdings ein neues Gerät eingebunden wird muss man es dafür wieder einzeln tun.

LG
Tom

Feinfinger

ZitatHinweis: Werden diese Attribute als global instance gesetzt, hat das auschließlich auf das FHEM logfile Auswirkungen
Proxmox VM - MAPLE-CUL - SIGNALDINO

r00t2

#6
Ich weiß ja nicht, wie es bei Dir ist, aber bei mir werden nicht automatisch Logfiles erzeugt, nur weil ich ein neues Device ins System genommen habe.

Wäre auch etwas lästig, wenn jeder Dummy, den ich mal zum Testen anlege, gleich ein Logfile hat.

Zumal es dann die SD Karte meines Systems unnötig durch Schreibzugriffe belastet. Daher ist mein Prinzip: So wenig wie möglich und nur soviel wie nötig loggen, den Rest einfach per Event verarbeiten.

Du wirst wohl über das manuelle Anlegen von diesen Einstellungen nicht umhin kommen, wenn Du Devices hinzufügst. Es sei denn es gibt tatsächlich eine programmatische Lösung, die - wenn ein neues Device erzeugt wurde - angetriggert wird und die entsprechenden Attribute setzt.

Kurzes OT: Ich sollte meine Alten Logfile Devices mal anschauen - das Attribut createGluedFile klingt gut und das gab es anscheinend "früher" noch nicht (oder ich habe es übersehen) : )
FHEM 6.0 (Raspberry Pi 2 B | Raspberry Pi OS Lite | Perl 5.28.1 | UZB Z-WAVE.Me | Hue Bridge V1 | SIGNALDuino 433 MHz | FritzBox | Kodi | Pioneer AVR | MQTT | Node-RED | Diverse Google Dienste)

tomspatz

@Finefinger
mit global, war es nicht gemeint es auf das fhem global zu setzten sondern eher diese Einstellung "zentral" für alle neu angelegten devices zu setzten.

@r00t2
Mit devices meine ich wiederum echte Hardware devices, bei denen wie z.B. ZWave schon beim inkludieser ein FileLog angelegt wird. Bei dummys, DOIF'S und sämtlichen anderen Modulen ist das sicherlich nicht nötig.

LG
Tom

Otto123

#8
Zitat von: tomspatz am 05 Februar 2019, 18:49:59
Ist es wohl auch möglich das "global" zu setzten?
Ich erreiche ja mit
attr FileLog.* nrarchive 5

Das alle BESTEHENDEN FileLog_ Definitionen gesetzt werden. Wenn allerdings ein neues Gerät eingebunden wird muss man es dafür wieder einzeln tun.

LG
Tom
Das geht meines Wissens nicht. Haben die anderen ja aber auch schon gesagt.

Edit: Aber ich könnte mir vorstellen, falls das Erzeugen des LogFiles Events wirft, dass man damit und einem notify vielleicht das Ganze automatisch machen könnte. Aber war nur eine spontane Idee zum weiterdenken.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz