Hauptmenü

Log archiving

Begonnen von csaba, 27 April 2010, 16:53:24

Vorheriges Thema - Nächstes Thema

csaba

                                               

Kleines Problem beim archiving von logs. Ich habe folgende global log
definiert:

attr global logfile     /fhem/log/fhem-%Y-%m-%d.log
attr global archivecmd  /bin/gzip %
attr global archivedir  /fhem/log/archive
attr global nrarchive   1

....

# Fake logfile, to access the global log
define FhemLogfile FileLog /fhem/log/fhem-%Y-%m-%d.log fakelog
attr   FhemLogfile archivecmd  /bin/gzip %
attr   FhemLogfile archivedir  /fhem/log/archive
attr   FhemLogfile nrarchive   1

Aus der doku verstehe ich es so das beim oeffnen des neues logs die
alte log mit gzip komprimiert und dann nach archivedir geschoben
wird.
Leider passiert bei mir nichts dergleichen. Auzug aus dem log:

010.04.26 23:30:47 2: FS20 set ...
2010.04.27 07:30:00 2: Archive: calling /bin/gzip /fhem/log/
fhem-2010-04-27.log
gzip: /fhem/log/fhem-2010-04-27.log: No such file or directory

Normalerweise muesste der Befehl /bin/gzip /fhem/log/
fhem-2010-04-26.log sein.

Es ist nicht klar fur mich wieso der neue Log archiviert werden soll
bevor es uberhaupt erstellt wird.

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

rudolfkoenig

                                                   

Szia Csaba.

> Es ist nicht klar fur mich wieso der neue Log archiviert werden soll
> bevor es uberhaupt erstellt wird.

Mir auch nicht, es ist ein Bug, und da offensichtlich kaum einer diesen feature
nutzt, faellt es nicht auf.

Ich vermute, man kann es fixen, indem man in fhem.pl, Funktion OpenLogfile()
die Zeile mit HandleArchiving zwei Zeilen hoeher schiebt, also vor
    $defs{global}{currentlogfile} = $param;

Koenntest Du das bitte testen?

Gruss,
  Rudi

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

csaba

                                               

Szia,

Habe die Aenderung eingepflegt, bin gespannt ...

Gruss,

Csaba

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

csaba

                                               

Hallo

Also, ich habe gute und schlechte Nachrichten.
Die Aenderung hat geholfen in dem Sinne das gzip jetzt korrekt
ausgefuhrt wird d.h. der Log vom vorigen Tag
wird komprimiert aber die Dateien werden nicht nach archivedir
geschoben. Um zu testen ob der geanderte Dateiname
schuld ist (gzip fuegt ein .gz hinzu) habe ich archivecmd rausgenommen
und nrarchive = 1 und archivedir =  /fhem/log/archive.
Auch in diesem Fall wird das aeltere log nicht nach archivedir
geschoben. Im Prinzip koennte ich das aber durch
einen Shell Skript machen und ueber archivecmd laufen lassen, da ich
bisher keinen Kontakt zu Perl hatte.

Gruss,

Csaba

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

rudolfkoenig

                                                   

> Also, ich habe gute und schlechte Nachrichten.

Gute fuer mich, und schlechte fuer Dich :)


> Die Aenderung hat geholfen in dem Sinne das gzip jetzt korrekt ausgefuhrt
> wird d.h. der Log vom vorigen Tag wird komprimiert aber die Dateien werden
> nicht nach archivedir geschoben.

Das ist korrekt, entweder archivecmd oder (archivedir mit nrarchive).
Schliesslich kann fhem nicht ahnen, was das Ergebnis von archivecmd ist.
Theoretisch koennte archivecmd die Datei ja auch auf Tape sichern oder anderen
Unsinn damit treiben :)

Vorschlag:
attr global archivecmd "gzip %; mv %.gz /var/log/archivedir"
(ungetestet)


Gruss,
  Rudi

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

csaba

                                               

> Das ist korrekt, entweder archivecmd oder (archivedir mit nrarchive).

Ok, jetzt verstehe ich.

Im zweiten Test hatte ich den Fall "(archivedir mit nrarchive)",
jedoch mit der Aenderung drin.
Ich teste mal auch ohne Aenderung "(archivedir mit nrarchive)", dann
koennte ich gzip per crontab laufen lassen.
In diesem Fall muesste ich bei Upgrades nicht die Aenderung nochmal
machen.

> Schliesslich kann fhem nicht ahnen, was das Ergebnis von archivecmd ist.
> Theoretisch koennte archivecmd die Datei ja auch auf Tape sichern oder anderen
> Unsinn damit treiben :)

Richtig.
(meine slug wuerde super aussehen mit einer Tape device
daneben ... :-) )

> Vorschlag:
> attr global archivecmd "gzip %; mv %.gz /var/log/archivedir"
> (ungetestet)

Wird auch getestet.

Danke,

Csaba

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

Guest

Originally posted by: <email address deleted>

> Theoretisch koennte archivecmd die Datei ja auch auf Tape sichern oder
anderen

Stimmt, der Befehl dazu heißt tar aka Tape Archive, ein Relikt aus der
Computer-Steinzeit  :-)

> Vorschlag:
> attr global archivecmd "gzip %; mv %.gz /var/log/archivedir"
> (ungetestet)

Commandref.html :

Attributes

    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 logfiles are kept while older ones are moved to archivedir
(or deleted if archivedir is not set).

Ich habe mal versucht das umzusetzen, dabei fiel mir auf, das Ändern der
Logdateinamen ist lästig: Bei meiner Installation gibt es inzwischen 17
Logfiles, ich habe sie manuell von /log/xyz-%Y.log in /log/xyz-%Y-%m-%d.log
umbenannt. Es wäre schön, wenn das zentral für alle Logdateien ginge. Das
Gleiche gilt für das Attribut archivedir und archivecmd.

Wenn man, wie oben angegeben attr global archivecmd "gzip %; mv %.gz
/var/log/archivedir" setzt, brauchen laut commandref keine Gänsefüßchen
gesetzt zu werden. Das Auswerten von % an der Stelle verhindert wirksam das
Einfügen eines Zeitstempels.

Ich versuche derzeit mein Glück mit notify und at, merkwürdig ist folgendes:

define LogRotate at *14:59:10 "/bin/tar -cO -C /var/InternerSpeicher/fhem
log | /bin/gzip > /var/InternerSpeicher/fhemlog-$(date
\+%Y%m%d%H%M).tar.gz;; rm -R /var/InternerSpeicher/fhem/log/*.log"

define LogSave notify LogSave "/bin/tar -cO -C /var/InternerSpeicher/fhem
log | /bin/gzip > /var/InternerSpeicher/fhemlog-$(date
\+%%Y%%m%%d%%H%%M).tar.gz;; sleep 5;; rm -R
/var/InternerSpeicher/fhem/log/*.log"

erzielen die gleichen Ergebnisse (fhemlog-201201291459.tar.gz), man achte
auf die jeweils notwendige Anzahl der Prozentzeichen für die
Zeitstempelerzeugung.


Ignisquivir

Fritz!Box 7390 (84.05.07-21400 ), Fhem 5.2 – 7390 SVN, 2xCUL V 1.44 CUL868,
2xHM-LC-Sw4-SM, 1xHM-LCSw1-FM, KS300, 1xEUL, 2x HOPPE Fenstergriff
SecuSignal





--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hi,
Frage: hast du es mit der logarchivierung hinbekommen?
Bei mir wachsen die Monats logs von einzelnen räumen inzwischen auf sage
und schreibe 24MB...

Wenn ja wie lauten die Beispiel commands?

BG,
mark

Am Dienstag, 27. April 2010 16:53:24 UTC+2 schrieb Csaba:
>
> Kleines Problem beim archiving von logs. Ich habe folgende global log
> definiert:
>
> attr global logfile     /fhem/log/fhem-%Y-%m-%d.log
> attr global archivecmd  /bin/gzip %
> attr global archivedir  /fhem/log/archive
> attr global nrarchive   1
>
> ....
>
> # Fake logfile, to access the global log
> define FhemLogfile FileLog /fhem/log/fhem-%Y-%m-%d.log fakelog
> attr   FhemLogfile archivecmd  /bin/gzip %
> attr   FhemLogfile archivedir  /fhem/log/archive
> attr   FhemLogfile nrarchive   1
>
> Aus der doku verstehe ich es so das beim oeffnen des neues logs die
> alte log mit gzip komprimiert und dann nach archivedir geschoben
> wird.
> Leider passiert bei mir nichts dergleichen. Auzug aus dem log:
>
> 010.04.26 23:30:47 2: FS20 set ...
> 2010.04.27 07:30:00 2: Archive: calling /bin/gzip /fhem/log/
> fhem-2010-04-27.log
> gzip: /fhem/log/fhem-2010-04-27.log: No such file or directory
>
> Normalerweise muesste der Befehl /bin/gzip /fhem/log/
> fhem-2010-04-26.log sein.
>
> Es ist nicht klar fur mich wieso der neue Log archiviert werden soll
> bevor es uberhaupt erstellt wird.
>
> --
> Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM
> users beigetreten sind.
> Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine
> E-Mail an fhem-...@googlegroups.com .
> Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an
> fhem-users+...@googlegroups.com .
> Besuchen Sie die Gruppe unter
> http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu
> erhalten.
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com