Що означає суфікс .d у Linux?


33

Я налаштовую apache і за замовчуванням маю каталоги /etc/httpd/confта /etc/httpd/conf.d. Яка різниця?

Також ви можете побачити суфікс у багатьох інших каталогах , таких як /etc/init.d, /etc/cron.dі т.д ...


1
це означає, що йдеться про демон
динамічний


8
@ Yes123: Ця теорія не дуже добре поєднується з /etc/apt/sources.list.d/, і /etc/profile.dтак далі
Martin

З відповідей, які дають Хакон і дельтарай, мені цікаво, чи .dвиступає default. Згідно з наведеною тут інформацією, це не так, але це здається логічним. Можливо, я можу йти вперед і думати про це саме так?
Смандолі

Відповіді:


44

"d" позначає каталог і такий каталог - це набір файлів конфігурації, які часто є фрагментами, які входять до основного файлу конфігурації. Справа в тому, щоб розділити проблеми конфігурації для підвищення ремонтопридатності.

Якщо у вас є така відмінність, як /etc/httpd/confvs /etc/httpd/conf.d, зазвичай це випадки, що /etc/httpd/confмістять різні файли конфігурації різних типів, тоді як .dкаталог містить кілька екземплярів одного типу файлів конфігурації (наприклад, "модулі для завантаження", "сайти для включення" тощо) ), і адміністратор може додавати та видаляти за потребою.


4
але conf - це також каталог, тому якщо обидва - це каталоги, яка різниця? Ви маєте рацію щодо ServerFault, чи можливо її перемістити?
SCL

Додано трохи про відзнаку, сподіваюся, це не зовсім заплутано :-)
Хакон

7
Каталоги .d зазвичай також автоматично завантажуються. Наприклад, cron перевірить cron.d і проаналізує будь-які файли всередині нього, головний конфігурація apache матиме щось на кшталт "include conf.d / *", що буде включати будь-які файли в conf.d при перезавантаженні. Це також дуже зручно для управління пакетами модулів. Менеджеру пакунків не потрібно намагатися редагувати файли, він просто скидає конфігурацію модуля у правильну .d-каталог, а потім перезавантажує службу.
Niall Donegan

13

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

Хороший приклад цього - логротат. У каталозі /etc/logrotate.d є конфігураційні файли практично для кожної встановленої програми, яка веде вхід / var / log . Деякі з них знаходяться в конфігурації syslog, оскільки майже в кожній системі є файл повідомлень, wtmp та lastlog. Але якщо ви встановите Apache у вашій системі, вам потрібен простий спосіб автоматичного додавання конфігурації для обертання журналів Apache, тому він просто скидає файл налаштування під назвою httpd у /etc/logrotate.dі logrotate налаштовано для включення файлів у цей каталог. Кожен з них є власником пакета для демона, і якщо ви вилучите його, він видалить файл. Це в основному спосіб модуляції конфігураційних файлів. Зауважте, що це повинно підтримуватися програмою, це не щось автоматичне, що система робить для вас чи щось таке. Зазвичай програми, які роблять це, мають директиву config, яку називають, включають, що визначають, де цей каталог знаходиться у файловій системі.

logrotate.d може бути навіть першим місцем, що ця конвенція була використана поза каталогами init.d та rc.d для скриптів init.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.