Linux에서 구성 파일의 폴더가 항상 * .d 인 이유는 무엇입니까?


12

Linux에서 구성 파일의 폴더는 왜 항상 이름이 *.d됩니까?

말하다

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

2
AskUbuntu 는 귀하의 질문에 대한 답변을 제공합니다.
Mehper C. Palavuzlar

Linux 및 Unix StackExchange 사이트도 마찬가지입니다 : unix.stackexchange.com/questions/4029/…
frabjous

이 질문 은 약 8 시간 전에 서버 결함에 대해 질문 되었습니다.
추후 공지가있을 때까지 일시 중지되었습니다.

답변:


22

.d디렉토리를 의미합니다. 디렉토리 기반 구성을 단일 구성 파일을 기반으로하는 구성과 구별하는 것이 관례입니다. 예를 들어 /etc/logrotate.conf및과 같이 일부 용량이있는 경우가 종종 있습니다 /etc/logrotate.d/.

일반적으로 이러한 디렉토리의 모든 (합리적으로 이름이 지정된) 파일이 단일 구성으로 자동 결합되는 경우도 있습니다. 그런 다음 패키지는 이와 같은 디렉토리에 파일을 설치할 수 있으며 자동으로 사용됩니다. 다시 한 번 /etc/logrotate.d/좋은 예입니다. 반대로, 끝나지 않는 구성 파일의 디렉토리 .d에는 아마도 같은 패키지에 속하는 구성 파일의 무작위 조합이 포함되어 있으며, 처리 방법에 대해서는 아무것도 추론 할 수 없습니다 (예 :) /etc/zsh/.


2

Peter의 답변을 약간 확장하기 위해이 .d 패턴을 사용하면 구성 파일을 간단하게 추가하고 제거 할 수 있습니다. 주어진 .d 프로그램의 경우 관리자는 파일을 편집하지 않고도 .d 디렉토리에 파일을 간단히 복사하거나 제거 할 수 있습니다 기존 구성 파일

예를 들어, cron 작업을 시스템에 추가하려면 원하는 텍스트 편집기를 사용하여 새 예약 된 작업으로 / etc / crontab을 편집 할 수 있습니다. 이는 단일 서버 또는 소수의 서버에 적합하지만 데이터 센터 / 클라우드 환경에서 작업하는 경우 100 대의 서버에서 수행하십시오. 후자의 경우 임시 파일과 함께 sed와 같은 파일을 사용하거나 ex와 같은 도구를 사용하여 파일을 적을 수 있지만 명령을 제대로 작성하지 않으면 약간의 위험이 있습니다. 실제로, 이러한 편집 명령의 오타로 인해 구성 파일이 완전히 nuked 된 것을 보았습니다.

이제 스케줄 된 작업이있는 파일을 /etc/cron.d에 배치하는 것과 비교하십시오. 파일을 파일에 복사하면 다음에 cron이 실행될 때 (일반적으로 1 분마다) 새 파일이 표시되고 그에 따라 소스 / 처리됩니다. Peter가 자신의 패키지를 롤링하고 싶다면 /etc/cron.d 파일은 패키지 아카이브의 다른 파일 일뿐입니다. 패키지를 제거하면 cron.d 파일이 제거되고 cron이 더 이상 실행되지 않습니다.

마지막으로, .d 디렉토리를 가진 모든 프로그램은 포함 순서 및 구성 재정의와 같이 파일의 소스 방식에 따라 자체 구현을 가질 수 있습니다. 따라서 .d 디렉토리에 파일을 배치하기로 결정할 때마다 항상 원하는대로 수행하는지 확인하고 .d 디렉토리가있는 다른 프로그램 에서처럼 작동한다고 가정하지 마십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.