Preferowane miejsce do przechowywania często zmieniających się plików konfiguracyjnych

18

Mam wiele aplikacji na moim serwerze Linux, które zależą od kilku plików konfiguracyjnych. Te aplikacje są powiązane, ale osobne. O ile jest to warte, w tej chwili każda aplikacja ma swój własny katalog /opt. Pliki konfiguracyjne mogą zmieniać się mniej więcej raz w tygodniu, ale nie więcej. Planuję skonfigurować zadanie crona, aby pobierać najnowszą wersję ze strony FTP w każdą niedzielę.

Nie do końca rozumiem dokładnie, gdzie byłoby najlepsze miejsce na umieszczenie tych plików konfiguracyjnych. Oto kilka możliwości:

  • /etc/<appsuitename>/ To plik konfiguracyjny, konfiguracja wchodzi /etc
  • /var/<appsuitename>/ Pliki zmieniają się dość często, ale nigdy bezpośrednio przez administratora (mnie), tylko przez dostawcę platformy.
  • /opt/<appsuitename>/liblub /opt/<appsuitename>/commonJest to raczej sposób myślenia w systemie Windows, ale w tym przypadku może mieć sens
  • /usr/lib prawdopodobnie nie, ale uwzględniono dla kompletności.

A może coś jeszcze o czym nie myślałem?

Edycja: Odpowiedzi na pytania Michaela Kjörlinga:

  • Są tylko 3 partycje, /home, /, i /swap. /optnie jest tylko do odczytu.
  • Tak, inna osoba będzie musiała korzystać z tego serwera, jeśli zostanę potrącony przez autobus.
  • Aplikacje te są opracowywane wewnętrznie, więc to ja decyduję, gdzie powinny iść konfiguracje. Gdyby nie był to „metatag”, mógłbym umieścić tag najlepszych praktyk.
  • Ostatecznie, cokolwiek postanowię, nie będzie miało znaczenia, wiem, że systemy organizacyjne służą administratorowi systemu bardziej niż wewnętrznym funkcjom systemu operacyjnego, ale lubię przestrzegać standardowych konwencji, ponieważ istnieją z jakiegoś powodu.
durron597
źródło

Odpowiedzi:

21

Hierarchia systemu plików Standard wymaga, aby pliki konfiguracyjne dla czegoś zainstalowanego były umieszczone /opt/xyztam /etc/opt/xyz, gdzie xyzmusi się zgadzać. Oznacza to, że aplikacja zainstalowana w katalogu w katalogu / opt, który wymaga plików konfiguracyjnych specyficznych dla hosta, powinna mieć zgodny katalog w katalogu / etc / opt, do którego wchodzą te pliki konfiguracyjne.

Cel / etc (konfiguracja systemu specyficzna dla hosta) jest po prostu określony jako:

/etcHierarchia zawiera pliki konfiguracyjne. „Plik konfiguracyjny” to plik lokalny używany do sterowania działaniem programu; musi być statyczny i nie może być wykonywalnym plikiem binarnym.

Oczywiście żadna konfiguracja nie jest całkowicie statyczna, ale w tym kontekście uważam, że „statyczny” oznacza z grubsza „nie zmienia się bez interwencji administratora”.

/ etc / opt jest bardziej szczegółowy, a jego cel jest określony jako:

Pliki konfiguracyjne specyficzne dla hosta dla dodatkowych pakietów aplikacji muszą być zainstalowane w katalogu /etc/opt/<subdir>, w którym <subdir>jest nazwa poddrzewa, w /optktórym przechowywane są dane statyczne z tego pakietu.

Ponieważ instalujesz oprogramowanie w / opt, pliki konfiguracyjne powinny zatem przejść do odpowiedniego podkatalogu lub hierarchii w / etc / opt.

Oczywiście nic nie wymaga, aby Twój system był zgodny z FHS, ale znacznie ułatwi innym znalezienie plików, których mogą szukać, ponieważ będą wiedzieli, gdzie mogą ich znaleźć.

Ponieważ chodzi o oprogramowanie opracowane wewnętrznie, zdecydowanie zalecam również skonfigurowanie lokalizacji . Nawet jeśli można go konfigurować tylko poprzez deklarację makr wykonaną w pliku makefile i dokonaną przez kompletną przebudowę ze źródła, jest to znacznie lepsze niż zakodowanie określonej lokalizacji w kodzie źródłowym wszędzie tam, gdzie chcesz otworzyć plik konfiguracyjny.

CVn
źródło
W rzeczywistości jest to już zrobione w .propertiespliku. Ale w tej chwili każda wersja oprogramowania ma swoją własną kopię w /optpodkatalogu, co oczywiście nie jest idealne i jest to coś, co zamierzałem zmienić. To pytanie dotyczy „co powinienem zmienić na TO”. Dzięki!
durron597,