Бажане місце для зберігання конфігураційних файлів, які часто змінюються


18

У мене на сервері Linux є декілька програм, які залежать від кількох файлів конфігурації. Ці програми пов'язані, але окремі. Для чого це варто, на даний момент у кожної програми є свій власний каталог /opt. Файли конфігурації можуть змінюватися приблизно раз на тиждень, але не більше ніж це. Я планую налаштувати роботу з крон, щоб щонеділі захоплювати останню версію з FTP-сайту.

Я ще не досконало розумію, де саме найкраще було б розмістити ці файли конфігурації. Ось кілька можливостей:

  • /etc/<appsuitename>/ Це конфігураційний файл, входить конфігурація /etc
  • /var/<appsuitename>/ Файли змінюються досить часто, але ніколи безпосередньо адміністратором (мені), просто постачальником платформи.
  • /opt/<appsuitename>/libабо /opt/<appsuitename>/commonЦе більше спосіб мислення Windows, але це може мати сенс у цьому випадку
  • /usr/lib напевно, ні, але включені для повноти.

А може, щось інше я не думав?

Редагувати: відповідати на запитання @ MichaelKjörling:

  • Є тільки 3 розділів, /home, /, і /swap. /optне читається тільки.
  • Так, іншій людині доведеться користуватися цим сервером, якщо мене потрапить автобус.
  • Ці програми розробляються всередині, тому я вирішую, куди повинні йти конфігурації. Якби це не мета-тег, я міг би поставити тег кращих практик.
  • Зрештою, все, що я вирішу, насправді не матиме значення, я знаю, що організаційні системи є для системного адміністратора більше, ніж для внутрішніх функцій ОС, але мені подобається дотримуватися стандартних умов, оскільки вони існують з причини.

Відповіді:


21

Стандарт ієрархії файлів вимагає, щоб файли конфігурації для чогось, що встановлено під, /opt/xyzповинні входити /etc/opt/xyz, де xyzповинні відповідати. Тобто програма, встановлена ​​в каталозі under / opt, для якого потрібні конкретні файли конфігурації для хоста, повинна мати відповідний каталог під / etc / opt, у який входять ці файли конфігурації.

Призначення / etc (конфігурація системи, що визначається для хоста) просто вказано як:

/etcІєрархія містить конфігураційні файли. "Файл конфігурації" - це локальний файл, який використовується для управління роботою програми; він повинен бути статичним і не може бути двійковим файлом, що виконується.

Звичайно, жодна конфігурація не є абсолютно статичною, але я вважаю, що "статичний" в цьому контексті означає, що приблизно "не змінюється без втручання адміністратора".

/ etc / opt є більш конкретним, а його призначення вказано як:

Файли конфігурації хоста для пакетів додатків програмного забезпечення повинні бути встановлені в каталозі /etc/opt/<subdir>, де <subdir>є ім'я піддіречка, в /optякому зберігаються статичні дані цього пакету.

Оскільки ви встановлюєте програмне забезпечення під / opt, файли конфігурації, таким чином, повинні переходити у відповідний підкаталог або ієрархію під / etc / opt.

Звичайно, нічого не вимагає, щоб ваша система відповідала FHS, але іншим користувачам буде набагато простіше знайти будь-які файли, які вони можуть шукати, оскільки вони будуть знати, де вони можуть розраховувати, що їх знайдуть.

Оскільки мова йде про внутрішньо розроблене програмне забезпечення, я також настійно пропоную вам зробити розташування налаштованим . Навіть якщо це налаштовується лише за допомогою макродекларації, зробленої у makefile та здійсненої шляхом повної перебудови з вихідного коду, це все-таки набагато краще, ніж тверде кодування певного місця у вихідний код скрізь, де ви хочете відкрити файл конфігурації.


Це фактично вже зроблено у .propertiesфайлі. Але на даний момент у кожної версії програмного забезпечення є своя копія у /optпідкаталозі, що, очевидно, не є ідеальним і є чимось, що я мав намір змінити. Це питання стосується "що я повинен змінити на". Спасибі!
durron597
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.