En Linux, ¿por qué siempre se nombran las carpetas para los archivos de configuración *.d?
Decir
/etc/init.d/etc/grub.d/etc/apparmor.d
En Linux, ¿por qué siempre se nombran las carpetas para los archivos de configuración *.d?
Decir
/etc/init.d/etc/grub.d/etc/apparmor.dRespuestas:
Los .dsoportes para directorio. Es una convención distinguir la configuración basada en directorio de una configuración basada en un único archivo de configuración. A menudo tendrá ambos en cierta capacidad, por ejemplo /etc/logrotate.confy /etc/logrotate.d/.
También suele ocurrir que todos los archivos (razonablemente nombrados) en dicho directorio se combinen automáticamente en una sola configuración. Los paquetes pueden instalar archivos en un directorio como ese y se usarán automáticamente. De nuevo, /etc/logrotate.d/es un buen ejemplo. Por restricción, un directorio de archivos de configuración que no termina .dprobablemente solo contenga una recopilación aleatoria de archivos de configuración que pertenecen al mismo paquete, y no puede inferir nada sobre cómo se procesan, por ejemplo /etc/zsh/.
Para ampliar un poco la respuesta de Peter, este patrón .d permite agregar y eliminar más fácilmente los archivos de configuración: para un programa .d dado, el administrador tiene la capacidad de simplemente copiar o eliminar un archivo en el directorio .d sin tener que editar un archivo de configuración existente
Por ejemplo, si desea agregar un trabajo cron a su sistema, puede editar / etc / crontab con su nuevo trabajo programado utilizando su editor de texto favorito. Esto está bien para un solo servidor o un puñado de servidores, pero intente hacerlo en 100 servidores si trabaja en un centro de datos / entorno de nube. En el último caso, podría usar algo como sed con un archivo temporal o una herramienta como ex para escribir el archivo en su lugar, pero hay un poco de riesgo aquí si no ha diseñado su comando correctamente. De hecho, he visto archivos de configuración completamente destruidos debido a un error tipográfico en estos comandos de edición.
Ahora compare eso con colocar un archivo con sus trabajos programados en /etc/cron.d. Simplemente copie el archivo en él y la próxima vez que se ejecute cron (generalmente cada minuto), verá el nuevo archivo y lo buscará / procesará en consecuencia. Esto es genial, como dice Peter si le gusta rodar sus propios paquetes: el archivo /etc/cron.d es solo otro archivo en el archivo de paquetes que se instala. Al eliminar el paquete, el archivo cron.d se elimina y su cron ya no se ejecuta.
Finalmente, cada programa que tiene un directorio .d puede tener su propia implementación en cuanto a cómo se obtienen los archivos, como incluir el orden y la anulación de la configuración. Por lo tanto, cada vez que decida colocar un archivo en un directorio .d, siempre verifique que haga lo que desea y no asuma que funciona como lo hace para otro programa que tenga un directorio .d.