Emplacement préféré pour stocker les fichiers de configuration qui changent souvent

18

J'ai un certain nombre d'applications sur mon serveur Linux qui dépendent de quelques fichiers de configuration. Ces applications sont liées mais distinctes. Pour ce que ça vaut, pour le moment, chaque application a son propre répertoire /opt. Les fichiers de configuration peuvent changer environ une fois par semaine, mais pas plus que cela. Je prévois de configurer un travail cron pour récupérer la dernière version d'un site FTP tous les dimanches.

Je ne comprends pas encore exactement où serait le meilleur endroit pour placer ces fichiers de configuration. Voici quelques possibilités:

  • /etc/<appsuitename>/ C'est un fichier de configuration, la configuration entre /etc
  • /var/<appsuitename>/ Les fichiers changent assez souvent, mais jamais directement par l'administrateur (moi), juste par le fournisseur de la plate-forme.
  • /opt/<appsuitename>/libou /opt/<appsuitename>/commonIl s'agit plus d'une façon de penser de Windows, mais cela peut avoir un sens dans ce cas
  • /usr/lib probablement pas, mais inclus pour être complet.

Ou peut-être autre chose à laquelle je n'ai pas pensé?

Edit: Répondre aux questions de MichaelKjörling:

  • Il n'y a que trois partitions, /home, /et /swap. /optn'est pas en lecture seule.
  • Oui, une autre personne devra utiliser ce serveur si je suis heurté par un bus.
  • Ces applications sont développées en interne, c'est donc moi qui décide de la destination des configurations. S'il ne s'agissait pas d'une «méta-balise», j'aurais peut-être mis une balise de bonnes pratiques.
  • En fin de compte, peu importe ce que je décide, je n'aurai pas d'importance, je sais que les systèmes organisationnels sont plus pour l'administrateur système que pour le fonctionnement interne du système d'exploitation, mais j'aime suivre les conventions standard telles qu'elles existent pour une raison.
durron597
la source

Réponses:

21

La norme de hiérarchie du système de fichiers requiert que les fichiers de configuration de quelque chose installé sous /opt/xyzsoient placés /etc/opt/xyz, là où les xyzdoivent correspondre. C'est-à-dire qu'une application installée dans un répertoire sous / opt qui nécessite des fichiers de configuration spécifiques à l'hôte doit avoir un répertoire correspondant sous / etc / opt dans lequel ces fichiers de configuration vont.

Le but de / etc (configuration système spécifique à l'hôte) est simplement indiqué comme suit:

La /etchiérarchie contient des fichiers de configuration. Un "fichier de configuration" est un fichier local utilisé pour contrôler le fonctionnement d'un programme; il doit être statique et ne peut pas être un binaire exécutable.

Bien sûr, aucune configuration n'est totalement statique, mais je considérerais "statique" dans ce contexte comme signifiant "ne change pas sans l'intervention de l'administrateur".

/ etc / opt est plus spécifique et son objectif est le suivant:

Les fichiers de configuration spécifiques à l'hôte pour les packages de logiciels d'application complémentaires doivent être installés dans le répertoire /etc/opt/<subdir>, où <subdir>est le nom de la sous-arborescence dans /optlaquelle les données statiques de ce package sont stockées.

Puisque vous installez le logiciel sous / opt, les fichiers de configuration doivent donc aller dans un sous-répertoire ou une hiérarchie correspondante sous / etc / opt.

Bien sûr, rien ne nécessite que votre système soit conforme à la FHS, mais cela facilitera beaucoup la tâche des autres pour trouver les fichiers qu'ils recherchent car ils sauront où ils peuvent s'attendre à les trouver.

Comme il s'agit d'un logiciel développé en interne, je vous suggère également fortement de rendre l'emplacement configurable . Même s'il n'est configurable que via une déclaration de macro effectuée dans le makefile et effectuée via une reconstruction complète à partir de la source, cela est bien mieux que de coder en dur un emplacement spécifique dans le code source partout où vous souhaitez ouvrir un fichier de configuration.

un CVn
la source
C'est en fait déjà fait dans un .propertiesfichier. Mais pour le moment, chaque version du logiciel a sa propre copie dans un /optsous - répertoire, ce qui n'est évidemment pas idéal et que j'avais l'intention de changer. Cette question porte sur "à quoi dois-je changer". Merci!
durron597