In Linux, perché le cartelle per i file di configurazione hanno sempre un nome *.d?
Dire
/etc/init.d/etc/grub.d/etc/apparmor.d
In Linux, perché le cartelle per i file di configurazione hanno sempre un nome *.d?
Dire
/etc/init.d/etc/grub.d/etc/apparmor.dRisposte:
Il .d sta per directory. È una convenzione per distinguere la configurazione basata su directory da una configurazione basata su un singolo file di configurazione. Spesso avrai entrambi in una certa misura, per esempio /etc/logrotate.conf e /etc/logrotate.d/.
Solitamente è anche il caso che tutti i file (ragionevolmente nominati) in tale directory vengano automaticamente combinati in un'unica configurazione. I pacchetti possono quindi installare i file in una directory del genere e verranno utilizzati automaticamente. Ancora, /etc/logrotate.d/ è un buon esempio. Al contrario, una directory di file di configurazione che non finisce .d probabilmente contiene solo regole di confronto casuali dei file di configurazione che appartengono allo stesso pacchetto e non è possibile dedurre nulla su come vengono elaborati, ad esempio /etc/zsh/.
Per espandere un po 'la risposta di Peter, questo schema .d consente una più semplice aggiunta e rimozione dei file di configurazione: per un determinato programma .d, l'amministratore ha la possibilità di copiare o rimuovere semplicemente un file nella directory .d senza dover modificare un file di configurazione esistente.
Ad esempio, se si desidera aggiungere un processo cron al proprio sistema, è possibile modificare / etc / crontab con il nuovo processo pianificato utilizzando il proprio editor di testo preferito. Questo va bene per un singolo server o una manciata di server, ma prova a farlo su 100 server se lavori in un ambiente datacenter / cloud. In quest'ultimo caso, potresti usare qualcosa come sed con un file temporaneo o uno strumento come ex per scrivere il file, ma c'è un po 'di rischio qui se non hai creato correttamente il tuo comando. Infatti, ho visto i file di configurazione completamente cancellati a causa di un refuso in questi comandi di modifica.
Ora confrontalo con l'inserimento di un file con i lavori pianificati in /etc/cron.d. Basta copiare il file e la prossima volta che viene eseguito cron (di solito ogni minuto), vedrà il nuovo file e lo processerà / elaborerà di conseguenza. Questo è ottimo come afferma Peter se ti piace caricare i tuoi pacchetti: il file /etc/cron.d è solo un altro file nell'archivio dei pacchetti che viene installato. Alla rimozione del pacchetto, il file cron.d viene rimosso e il tuo cron non viene più eseguito.
Infine, ogni programma che ha una directory .d può avere una propria implementazione per quanto riguarda l'origine dei file, come l'inclusione dell'ordine e la sovrascrittura della configurazione. Quindi, ogni volta che decidi di inserire un file in una directory .d, verifica sempre che faccia ciò che vuoi e non pensi che funzioni come fa per un altro programma che ha una directory .d.