Cosa significa il suffisso .d in Linux?


33

Sto configurando apache e di default ho le directory /etc/httpd/confe /etc/httpd/conf.d. Qual è la differenza?

Inoltre è possibile vedere il suffisso in molte altre directory come /etc/init.d, /etc/cron.d, ecc ...


1
significa che si riferisce a un demone
dinamico il


8
@ yes123: questa teoria non si adatta bene /etc/apt/sources.list.d/, /etc/profile.decc.
Martin,

Dalle risposte fornite da Haakon e da Deltaray, mi chiedo se .drappresenti default. In base alle informazioni qui non lo è, ma sembra logico. Forse posso andare avanti e pensarlo in quel modo?
Smandoli,

Risposte:


44

"d" sta per directory e tale directory è una raccolta di file di configurazione che sono spesso frammenti inclusi nel file di configurazione principale. Il punto è compartimentare i problemi di configurazione per aumentare la manutenibilità.

Quando hai una distinzione come /etc/httpd/confvs /etc/httpd/conf.d, di solito è il caso che /etc/httpd/confcontiene vari tipi diversi di file di configurazione, mentre una .ddirectory contiene più istanze dello stesso tipo di file di configurazione (come "moduli da caricare", "siti da abilitare" ecc. ) e l'amministratore può aggiungere e rimuovere secondo necessità.


4
ma conf è anche una directory, quindi se entrambe sono directory, qual è la differenza? Hai ragione su ServerFault, è possibile spostarlo?
SCL

Aggiunto un po 'di distinzione, spero che non sia del tutto confuso :-)
Haakon,

7
Anche le directory .d vengono normalmente caricate automaticamente. Ad esempio, cron controllerà cron.d e analizzerà tutti i file al suo interno, la configurazione principale di Apache avrà qualcosa come "include conf.d / *" che includerà tutti i file all'interno di conf.d al ricaricamento. È anche molto utile per la gestione dei pacchetti dei moduli. Il gestore pacchetti non deve tentare di modificare i file, rilascia semplicemente la configurazione per il modulo nella directory .d corretta e quindi ricarica il servizio.
Niall Donegan,

13

La principale forza trainante dell'esistenza di questa convenzione di denominazione delle directory è quella di semplificare la gestione dei pacchetti dei file di configurazione. Che si tratti di rpm, deb o altro, è molto più semplice (e probabilmente più sicuro) riuscire a rilasciare un file in una directory in modo che sia automaticamente incluso nella configurazione di un programma invece di provare a modificare un file di configurazione globale.

Un buon esempio di ciò è logrotate. Nella directory /etc/logrotate.d sono presenti i file di configurazione per praticamente tutte le applicazioni installate che mantengono un accesso / var / log . Alcuni sono raggruppati nella configurazione di syslog perché quasi ogni sistema ha un file di messaggi, wtmp e lastlog. Ma se installi Apache sul tuo sistema, hai bisogno di un modo semplice per aggiungere automaticamente la configurazione per ruotare i registri di Apache, quindi rilascia un file di configurazione chiamato httpd in /etc/logrotate.de logrotate è configurato per includere i file in quella directory. Ognuno è di proprietà del pacchetto per il demone e se si rimuove il pacchetto rimuoverà il file. Fondamentalmente è un modo di modularizzare i file di configurazione. Nota che questo deve essere supportato dal programma, non è qualcosa di automatico che il sistema fa per te o qualcosa del genere. Di solito i programmi che lo fanno hanno una direttiva di configurazione chiamata include che specifica dove si trova quella directory sul filesystem.

logrotate.d potrebbe persino essere il primo posto in cui questa convenzione è stata utilizzata al di fuori delle directory init.d e rc.d per gli script init.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.