Lugar preferido para almacenar archivos de configuración que cambian con frecuencia

18

Tengo varias aplicaciones en mi servidor Linux que dependen de algunos archivos de configuración. Estas aplicaciones están relacionadas pero separadas. Por lo que vale la pena, en el momento en que cada aplicación tiene su propio directorio en /opt. Los archivos de configuración pueden cambiar aproximadamente una vez por semana, pero no más que eso. Planeo configurar un trabajo cron para obtener la última versión de un sitio FTP todos los domingos.

Todavía no entiendo exactamente dónde sería el mejor lugar para colocar estos archivos de configuración. Aquí hay algunas posibilidades:

  • /etc/<appsuitename>/ Es un archivo de configuración, la configuración entra /etc
  • /var/<appsuitename>/ Los archivos cambian razonablemente a menudo, pero nunca directamente por el administrador (yo), solo por el proveedor de la plataforma.
  • /opt/<appsuitename>/libo /opt/<appsuitename>/commonEsto es más una forma de pensar de Windows, pero puede tener sentido en este caso
  • /usr/lib probablemente no, pero incluido para completar.

¿O tal vez algo más en lo que no haya pensado?

Editar: Respondiendo las preguntas de @ MichaelKjörling:

  • Sólo hay 3 particiones, /home, /, y /swap. /optNo es de solo lectura.
  • Sí, otra persona tendrá que usar este servidor si un autobús me golpea.
  • Estas aplicaciones se desarrollan internamente, por lo que yo soy quien decide dónde deben ir las configuraciones. Si no fuera una "metaetiqueta", podría haber puesto una etiqueta de mejores prácticas.
  • En última instancia, lo que decida realmente no importará, sé que los sistemas organizacionales son para el administrador del sistema más que para el funcionamiento interno del sistema operativo, pero me gusta seguir las convenciones estándar, ya que existen por una razón.
durron597
fuente

Respuestas:

21

El Estándar de Jerarquía del Sistema de Archivos requiere que los archivos de configuración para algo instalado bajo /opt/xyzdeben entrar /etc/opt/xyz, donde xyzdeben coincidir. Es decir, una aplicación instalada en un directorio bajo / opt que requiere archivos de configuración específicos del host debe tener un directorio correspondiente en / etc / opt en el que van esos archivos de configuración.

El propósito de / etc (configuración del sistema específico del host) simplemente se establece como:

La /etcjerarquía contiene archivos de configuración. Un "archivo de configuración" es un archivo local utilizado para controlar el funcionamiento de un programa; debe ser estático y no puede ser un binario ejecutable.

Por supuesto, ninguna configuración es totalmente estática, pero consideraría que "estático" en este contexto significa aproximadamente "no cambia sin la intervención del administrador".

/ etc / opt es más específico y su propósito se establece como:

Los archivos de configuración específicos del host para los paquetes de software de aplicación complementaria deben instalarse dentro del directorio /etc/opt/<subdir>, donde <subdir>está el nombre del subárbol en /optel que se almacenan los datos estáticos de ese paquete.

Dado que está instalando el software en / opt, los archivos de configuración deben ir al subdirectorio o jerarquía correspondiente en / etc / opt.

Por supuesto, nada requiere que su sistema se ajuste al FHS, pero hará que sea mucho más fácil para los demás encontrar los archivos que puedan estar buscando, ya que sabrán dónde pueden encontrarlos.

Dado que se trata de software desarrollado internamente, también te sugiero que hagas que la ubicación sea configurable . Incluso si solo es configurable a través de una declaración de macro realizada en el archivo MAKE y efectuada a través de una reconstrucción completa desde la fuente, eso es mucho mejor que codificar una ubicación específica en el código fuente en cualquier lugar donde desee abrir un archivo de configuración.

un CVn
fuente
En realidad ya está hecho en un .propertiesarchivo. Pero en este momento, cada versión del software tiene su propia copia en un /optsubdirectorio, lo que obviamente no es ideal y es algo que tenía la intención de cambiar. Esta pregunta es sobre "¿A qué debo cambiarlo?". ¡Gracias!
durron597