Чому в Linux для папок файлів конфігурації завжди називають папки *.d?
Сказати
/etc/init.d/etc/grub.d/etc/apparmor.d
Чому в Linux для папок файлів конфігурації завжди називають папки *.d?
Сказати
/etc/init.d/etc/grub.d/etc/apparmor.dВідповіді:
.dПозначає каталог. Це умова відрізняти конфігурацію на основі каталогу від конфігурації, заснованої на одному файлі конфігурації. Часто ви будете мати як у якійсь якості, наприклад, /etc/logrotate.confі /etc/logrotate.d/.
Також зазвичай буває так, що всі файли (з таким іменем) в такому каталозі автоматично об'єднуються в єдину конфігурацію. Потім пакети можуть встановлювати файли в такий каталог, і вони будуть використовуватися автоматично. Знову ж таки, /etc/logrotate.d/хороший приклад. За обмеженням, каталог файлів конфігурації, який, .dмабуть, не закінчується, просто містить випадкове зіставлення файлів конфігурації, що належать до одного пакету, і ви не можете зробити нічого висновку про те, як вони обробляються, наприклад /etc/zsh/.
Щоб трохи розширити відповідь Петра, цей шаблон .d дозволяє спростити додавання та видалення файлів конфігурації: для даної програми .d адміністратор має можливість просто скопіювати або видалити файл у каталог .d, не потребуючи редагування наявний конфігураційний файл.
Наприклад, якщо ви хочете додати завдання cron до вашої системи, ви можете редагувати / etc / crontab за допомогою нового запланованого завдання за допомогою улюбленого редактора тексту. Це добре для одного сервера або декількох серверів, але спробуйте зробити це на 100 серверах, якщо ви працюєте в центрі обробки даних / хмарі. В останньому випадку ви можете використовувати щось на зразок sed з тимчасовим файлом або інструментом, наприклад, ex, щоб написати файл на місці, але тут є трохи ризику, якщо ви не правильно склали свою команду. Дійсно, я бачив конфігураційні файли, повністю заграні внаслідок помилки друку в цих командах редагування.
Тепер порівняйте це з розміщенням файлу із запланованими завданнями в /etc/cron.d. Ви просто скопіюєте файл у нього, і наступного разу, коли cron запускається (як правило, щохвилини), він побачить новий файл і буде відповідно джерелом / обробляти його. Це чудово, як стверджує Пітер, якщо ви хочете прокручувати власні пакунки: файл /etc/cron.d - це лише інший файл в архіві пакунків, який встановлюється. Після видалення пакета файл cron.d видаляється, і ваш cron більше не працює.
Нарешті, кожна програма, яка має каталог .d, може мати власну реалізацію щодо отримання файлів, таких як переопределення порядку та конфігурації. Тому щоразу, коли ви вирішите розмістити файл у каталозі .d, завжди переконайтеся, що він робить те, що ви хочете, і не вважайте, що він працює так, як це робиться для іншої програми, що має .d каталог.