Назад | Перейти на главную страницу

Что означает суффикс .d в Linux?

Я настраиваю apache и по умолчанию у меня есть каталоги /etc/httpd/conf и /etc/httpd/conf.d. В чем разница?

Также вы можете увидеть суффикс во многих других каталогах, например /etc/init.d, /etc/cron.d, и т.д...

«d» означает каталог, и такой каталог представляет собой набор файлов конфигурации, которые часто являются фрагментами, включенными в основной файл конфигурации. Дело в том, чтобы разделить проблемы конфигурации, чтобы повысить ремонтопригодность.

Когда у вас есть различие, например /etc/httpd/conf против /etc/httpd/conf.d, как правило, /etc/httpd/conf содержит различные типы файлов конфигурации, а .d Каталог содержит несколько экземпляров одного и того же типа файла конфигурации (например, «модули для загрузки», «сайты для включения» и т. д.), и администратор может добавлять и удалять при необходимости.

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

Хорошим примером этого является logrotate. В каталоге /etc/logrotate.d - это файлы конфигурации практически для каждого установленного вами приложения, которое ведет журнал / var / журнал. Некоторые из них включены в конфигурацию системного журнала, потому что почти каждая система имеет файл сообщений, wtmp и lastlog. Но если вы установите Apache в своей системе, вам понадобится простой способ автоматического добавления конфигурации для ротации журналов Apache, поэтому он просто удаляет файл конфигурации с именем httpd в /etc/logrotate.d а logrotate настроен на включение файлов в этот каталог. Каждый из них принадлежит пакету для демона, и если вы удалите пакет, он удалит файл. По сути, это способ разбивки конфигурационных файлов на модули. Обратите внимание, что это должно поддерживаться программой, а не чем-то автоматическим, что система делает за вас или что-то в этом роде. Обычно программы, которые это делают, имеют директиву конфигурации под названием включают которые указывают, где этот каталог находится в файловой системе.

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