Umzug der FHEM-Logdateien auf eine andere Partition – beste Methode?

Begonnen von Uli Zappe, 06 Juli 2016, 03:19:47

Vorheriges Thema - Nächstes Thema

Uli Zappe

Hallo allerseits,

auf meiner Root-Partition wird es langsam eng, daher wollte ich die Logdateien aus /var/log/fhem gerne auf eine andere, noch völlig leere Partition umziehen.

Theoretisch gibt es nach meinem Verständnis dazu zwei Möglichkeiten:


  • Ich ändere in /etc/fhem.cfg alle Einträge /var/log/fhem/ auf den Pfad der anderen Partition
  • Ich ändere /etc/fstab und mounte meine zweite Partition als /var/log/fhem/

Ist eines dieser Verfahren dem anderen vorzuziehen? Gibt es bekannte Probleme bei einem dieser Verfahren?

Danke im Voraus für Eure Antworten!

borsti67

Ich würde in jedem Fall die zweite Methode anwenden, schon allein um spätere Probleme wegen (vergessener?) Konfigurationsprobleme zu vermeiden.
Je nach Größe der Partition würde ich aber eher /var/log oder (je nach Platz) komplett /var mounten...?
cu/2
Borsti
---
FHEM 5.8 auf Synology DS211j (bis 11/17) | FHEM 6.0 auf Raspi Zero W (bis 11/20) | FHEM 6.2 als VM in Synology DS1815+ (ab 11/20)

Wernieman

Es gibt noch eine ritte Möglichkeit:
3. Symlink

Ein Symlink, der /var/log/fhem woanders hinzeigen lässt
- 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

betateilchen

Möglichkeit 4:

In fhem den Pfad für das Logverzeichnis ändern (dafür gibt es ein globales Attribut "logdir") und danach die vorhandenen Logfiles an die neue Stelle kopieren.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Uli Zappe

Hui, sieht ja fast so aus, als hätte ich die freie Auswahl!  :D Sogar Symlinks gehen – das hatte ich irgendwie eher bezweifelt und daher gar nicht erwähnt. Dank für Eure Antworten!

Zitat von: betateilchen am 06 Juli 2016, 08:08:09
Möglichkeit 4:

In fhem den Pfad für das Logverzeichnis ändern (dafür gibt es ein globales Attribut "logdir") und danach die vorhandenen Logfiles an die neue Stelle kopieren.
Aber wenn ich nur das globale Attribut logdir ändere, dann bleibt doch für alle schon existenten Logdateien in /etc/fhem.cfg der Pfad /var/log/fhem/ bestehen, oder übersehe ich da etwas? (Deswegen würde ich ja, wie ich schrieb, erwarten, dass ich alle /var/log/fhem/-Einträge in /etc/fhem.cfg durch den neuen Pfad ersetzen muss.

marvin78


Uli Zappe

Zitat von: marvin78 am 06 Juli 2016, 10:09:14
[...] danach die vorhandenen Logfiles an die neue Stelle kopieren.
Ja, logo. Nur was nützt das, wenn in /etc/fhem.cfg noch die alten Pfade stehen? Das wäre doch gerade das Problem, dass die Pfade in der Konfigurationsdatei und die tatsächlichen Dateipfade nicht mehr übereinstimmen.

marvin78

Ich möchte jetzt nicht schon wieder zitieren. Die Pfade stehen in Attributen und die müssen geändert werden.

Uli Zappe

Zitat von: marvin78 am 06 Juli 2016, 10:28:23
Ich möchte jetzt nicht schon wieder zitieren. Die Pfade stehen in Attributen und die müssen geändert werden.
?? Öhm, ja eben – das ist doch genau das, was ich eingangs schrieb (Ich ändere in /etc/fhem.cfg alle Einträge /var/log/fhem/ auf den Pfad der anderen Partition), nur betateilchen, auf den ich mich bezog, setzte dagegen, ich müsse nur das globale Attribut logdir ändern – und das verstand ich eben nicht.

Ich verstehe nicht wirklich, was Du mir sagen willst.  ;)

betateilchen

Ihr redet aneinander vorbei. Das globale Attribut logdir wirkt sich auf jeden Fall auf alle neu erstellten Logfile-Definitionen aus.

Ob eine Änderung des Attributes auch bei vorhandenen Definitionen greift, hängt davon ab, wie die bestehenden Logfiles definiert sind.

Beispiel 1:

define log1 FileLog ./log/meinLogfile1.name <regexp>

In dieser Definition muss der Pfad manuell geändert werden.


Beispiel 2:

define log2 FileLog %L/meinLogfile2.name <regexp>

In diesem Fall wird der Pfad bei jedem Neustart aus dem globalen Attribut logdir gelesen und verwendet.
Deshalb wird in diesem Fall eine Änderung des Attributes logdir auch für bestehende Definitionen funktionieren.
Und deshalb sollte man auch FileLog Definitionen am sinnvollsten immer mit dem Platzhalter %L  definieren anstatt mit einer konkreten Pfadangabe.

Oder man steigt gleich um auf DbLog, dann muss man sich über so ein Thema gar keine Gedanken mehr machen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

marvin78

Bitte die commandref zu FileLog beachten (insbesondere bezüglich logdir). Man kann das alles etwas generischer machen und zukünftige Verschiebungen erleichtern.

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

ph1959de

 Problem ist, dass logdir in der commandref nur einmal erwähnt ist, aber nicht bei global beschrieben wird. Defaultmässig ist es auch nicht gesetzt und mit autocreate angelegte Logs werden wohl als ./log/... definiert.

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

marvin78

Richtig. Du warst schneller.

Aber ich habe an niemandem vorbei geredet sondern darauf gesetzt, dass die commandref Inhalte klar sind.

betateilchen

Zitat von: marvin78 am 06 Juli 2016, 10:49:10
sondern darauf gesetzt, dass die commandref Inhalte klar sind.

Du glaubst wohl auch, dass ein Zitronenfalter Zitronen faltet?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!