O que significa o sufixo .d no Linux?


33

Estou configurando o apache e, por padrão, tenho os diretórios /etc/httpd/confe /etc/httpd/conf.d. Qual é a diferença?

Também você pode ver o sufixo em muitos outros diretórios como /etc/init.d, /etc/cron.d, etc ...


1
significa que está se referindo a um daemon
dynamic


8
@ yes123: Essa teoria não se encaixa bem com /etc/apt/sources.list.d/, /etc/profile.detc
Martin

Pelas respostas dadas por Haakon e deltaray, pergunto-me se isso .drepresenta default. De acordo com as informações aqui, não parece, mas parece lógico. Talvez eu possa ir em frente e pensar dessa maneira?
Smandoli 1/11

Respostas:


44

"d" significa diretório e esse diretório é uma coleção de arquivos de configuração que geralmente são fragmentos incluídos no arquivo de configuração principal. O objetivo é compartimentar as preocupações de configuração para aumentar a capacidade de manutenção.

Quando você tem uma distinção como /etc/httpd/confvs /etc/httpd/conf.d, geralmente é o caso que /etc/httpd/confcontém vários tipos diferentes de arquivos de configuração, enquanto um .ddiretório contém várias instâncias do mesmo tipo de arquivo de configuração (como "módulos para carregar", "sites para ativar" etc.) ) e o administrador pode adicionar e remover conforme necessário.


4
mas conf também é um diretório; portanto, se os dois são diretórios, qual é a diferença? Você está certo sobre ServerFault, é possível movê-lo?
SCL

Adicionado um pouco sobre a distinção, espero que isso não é totalmente confuso :-)
Haakon

7
Os diretórios .d também são normalmente carregados automaticamente. Por exemplo, o cron verificará o cron.d e analisará todos os arquivos lá dentro, a principal configuração do apache terá algo como "include conf.d / *", que incluirá todos os arquivos dentro do conf.d ao recarregar. Também é realmente útil para o gerenciamento de pacotes de módulos. O gerenciador de pacotes não precisa tentar editar arquivos, apenas coloca a configuração do módulo no diretório .d correto e recarrega o serviço.
Niall Donegan

13

A principal força motriz por trás da existência dessa convenção de nomenclatura de diretório é o gerenciamento mais fácil de pacotes de arquivos de configuração. Seja seu rpm, deb ou qualquer outra coisa, é muito mais fácil (e provavelmente mais seguro) poder soltar um arquivo em um diretório para que ele seja incluído automaticamente na configuração de um programa em vez de tentar editar um arquivo de configuração global.

Um bom exemplo disso é o logrotate. No diretório /etc/logrotate.d existem arquivos de configuração para praticamente todos os aplicativos que você instalou que mantêm um logon / var / log . Alguns são agrupados na configuração do syslog porque quase todo sistema possui um arquivo de mensagens, wtmp e lastlog. Mas se você instalar o Apache em seu sistema, precisará de uma maneira fácil de adicionar automaticamente a configuração para girar os logs do Apache, para que ele simplesmente solte um arquivo de configuração chamado httpd em /etc/logrotate.de logrotate está configurado para incluir os arquivos nesse diretório. Cada um pertence ao pacote para o daemon e, se você remover o pacote, ele removerá o arquivo. É basicamente uma maneira de modularizar arquivos de configuração. Observe que isso precisa ser suportado pelo programa, não é algo automático que o sistema faça por você ou algo assim. Geralmente, os programas que possuem uma diretiva de configuração chamada include especificam onde esse diretório está localizado no sistema de arquivos.

logrotate.d pode até ser o primeiro local em que essa convenção foi usada fora dos diretórios init.d e rc.d para scripts init.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.