Bevorzugter Ort zum Speichern von Konfigurationsdateien, die sich häufig ändern

18

Ich habe eine Reihe von Anwendungen auf meinem Linux-Server, die von einigen Konfigurationsdateien abhängen. Diese Anwendungen sind verwandt, aber getrennt. Im Moment hat jede Anwendung ein eigenes Verzeichnis in /opt. Die Konfigurationsdateien können ungefähr einmal pro Woche geändert werden, jedoch nicht mehr. Ich plane, jeden Sonntag einen Cron-Job einzurichten, um die neueste Version von einer FTP-Site abzurufen.

Ich verstehe nicht genau, wo sich diese Konfigurationsdateien am besten befinden. Hier sind einige Möglichkeiten:

  • /etc/<appsuitename>/ Es ist eine Konfigurationsdatei, die Konfiguration geht rein /etc
  • /var/<appsuitename>/ Die Dateien werden einigermaßen häufig geändert, jedoch niemals direkt vom Administrator (mir), sondern nur vom Plattformanbieter.
  • /opt/<appsuitename>/liboder /opt/<appsuitename>/commonDies ist eher eine Windows-Denkweise, kann aber in diesem Fall sinnvoll sein
  • /usr/lib wahrscheinlich nicht, aber der Vollständigkeit halber eingeschlossen.

Oder vielleicht noch etwas, woran ich nicht gedacht habe?

Edit: Beantwortung von @ MichaelKjörlings Fragen:

  • Es gibt nur 3 Partitionen /home, /und /swap. /optist nicht readonly.
  • Ja, eine andere Person muss diesen Server benutzen, wenn ich von einem Bus angefahren werde.
  • Diese Anwendungen werden intern entwickelt, sodass ich derjenige bin, der entscheidet, wohin die Konfigurationen gehen sollen. Wenn es kein "Meta-Tag" wäre, hätte ich möglicherweise ein Best-Practice-Tag eingefügt.
  • Letztendlich ist es mir egal, für was ich mich auch entscheide, ich weiß, dass Organisationssysteme mehr für den Systemadministrator sind als für die internen Abläufe des Betriebssystems, aber ich folge gern Standardkonventionen, da sie aus einem bestimmten Grund existieren.
durron597
quelle

Antworten:

21

Der Dateisystem-Hierarchie-Standard verlangt, dass Konfigurationsdateien für etwas, unter dem installiert /opt/xyzist /etc/opt/xyz, dort xyzabgelegt werden , wo die übereinstimmen müssen. Das heißt, eine Anwendung, die in einem Verzeichnis unter / opt installiert ist, das hostspezifische Konfigurationsdateien erfordert, sollte ein passendes Verzeichnis unter / etc / opt haben, in das diese Konfigurationsdateien verschoben werden.

Der Zweck von / etc (hostspezifische Systemkonfiguration) wird einfach wie folgt angegeben:

Die /etcHierarchie enthält Konfigurationsdateien. Eine "Konfigurationsdatei" ist eine lokale Datei, die zur Steuerung des Betriebs eines Programms verwendet wird. Es muss statisch sein und darf keine ausführbare Binärdatei sein.

Natürlich ist keine Konfiguration vollständig statisch, aber ich würde "statisch" in diesem Zusammenhang so verstehen, als würde sich "nicht ohne Eingreifen des Administrators ändern".

/ etc / opt ist spezifischer und hat folgenden Zweck:

Hostspezifische Konfigurationsdateien für Add-On-Anwendungssoftwarepakete müssen im Verzeichnis installiert werden /etc/opt/<subdir>. Dabei <subdir>handelt es sich um den Namen des Unterbaums, in /optdem die statischen Daten dieses Pakets gespeichert sind.

Da Sie die Software unter / opt installieren, sollten die Konfigurationsdateien daher in ein entsprechendes Unterverzeichnis oder eine entsprechende Hierarchie unter / etc / opt verschoben werden.

Natürlich erfordert nichts , dass Ihr System der FHS entspricht, aber es erleichtert anderen das Auffinden von Dateien, nach denen sie möglicherweise suchen, da sie wissen, wo sie sie voraussichtlich finden werden.

Da es sich um intern entwickelte Software handelt, empfehle ich dringend , den Speicherort konfigurierbar zu machen . Auch wenn es nur durch eine Makrodeklaration im Makefile und durch eine vollständige Neuerstellung aus dem Quellcode konfigurierbar ist, ist dies immer noch viel besser, als überall dort, wo Sie eine Konfigurationsdatei öffnen möchten, einen bestimmten Speicherort fest in den Quellcode zu codieren.

ein CVn
quelle
Es ist eigentlich schon in einer .propertiesDatei gemacht. Aber im Moment hat jede Version der Software ihre eigene Kopie in einem /optUnterverzeichnis, was offensichtlich nicht ideal ist und etwas ist, das ich ändern wollte. Bei dieser Frage geht es um "woran soll ich es ändern". Vielen Dank!
Durron597