8

В linux почему папки для файлов конфигурации всегда называются *.d?

Сказать

  • /etc/init.d
  • /etc/grub.d
  • /etc/apparmor.d

2 ответа2

17

.d обозначает каталог. Это соглашение, чтобы отличать конфигурацию на основе каталога от конфигурации, основанной на одном файле конфигурации. Часто вы будете иметь оба в некотором качестве, например /etc/logrotate.conf и /etc/logrotate.d/ .

Также обычно бывает, что все (с разумным именем) файлы в таком каталоге автоматически объединяются в одну конфигурацию. Затем пакеты могут устанавливать файлы в такой каталог, и они будут использоваться автоматически. Опять же, /etc/logrotate.d/ является хорошим примером. В отличие от этого, каталог файлов конфигурации, который не заканчивается на .d вероятно, просто содержит случайное сопоставление файлов конфигурации, принадлежащих одному и тому же пакету, и вы не можете ничего сделать о том, как они обрабатываются, например /etc/zsh/ .

2

Чтобы немного расширить ответ Питера, этот шаблон .d позволяет упростить добавление и удаление файлов конфигурации: для данной программы .d администратор может просто скопировать или удалить файл в каталог .d без необходимости редактирования. существующий файл конфигурации.

Например, если вы хотите добавить в систему задание cron, вы можете отредактировать /etc /crontab с помощью нового запланированного задания, используя ваш любимый текстовый редактор. Это хорошо для одного сервера или нескольких серверов, но попробуйте сделать это на 100 серверах, если вы работаете в центре обработки данных / облачной среде. В последнем случае вы можете использовать что-то вроде sed с временным файлом или инструмент, такой как ex, чтобы записать файл на месте, но здесь есть небольшой риск, если вы не создали свою команду должным образом. Действительно, я видел файлы конфигурации полностью обстрелянными из-за опечатки в этих командах редактирования.

Теперь сравните это с размещением файла с запланированными заданиями в /etc/cron.d. Вы просто копируете файл в него, и в следующий раз, когда cron запускается (обычно каждую минуту), он увидит новый файл и соответственно его обработает / обработает. Это замечательно, как утверждает Питер, если вы хотите свернуть свои собственные пакеты: файл /etc/cron.d - это просто еще один файл в архиве пакетов, который устанавливается. После удаления пакета файл cron.d удаляется, и ваш cron больше не работает.

Наконец, каждая программа, имеющая каталог .d, может иметь свою собственную реализацию в том, что касается источника файлов, например, переопределение порядка и конфигурации. Поэтому, когда вы решаете поместить файл в каталог .d, всегда проверяйте, что он делает то, что вам нужно, и не просто предполагайте, что он работает так же, как и для другой программы, имеющей каталог .d.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .