Local preferido para armazenar arquivos de configuração que mudam com freqüência

16

Eu tenho vários aplicativos no meu servidor Linux que dependem de alguns arquivos de configuração. Esses aplicativos estão relacionados, mas separados. Por que vale a pena, no momento em que cada aplicativo tem seu próprio diretório em /opt . Os arquivos de configuração podem mudar cerca de uma vez por semana, mas não mais que isso. Eu pretendo configurar um cron job para pegar a versão mais recente de um site FTP todos os domingos.

Eu não entendo exatamente onde o melhor lugar para colocar esses arquivos de configuração seria, ainda. Aqui estão algumas possibilidades:

  • /etc/<appsuitename>/ É um arquivo de configuração, a configuração vai em /etc
  • /var/<appsuitename>/ Os arquivos mudam razoavelmente, mas nunca diretamente pelo administrador (eu), apenas pelo provedor da plataforma.
  • /opt/<appsuitename>/lib ou /opt/<appsuitename>/common Esse é mais um modo de pensar do Windows, mas pode fazer sentido nesse caso
  • /usr/lib provavelmente não, mas incluído para ser completo.

Ou talvez mais alguma coisa em que não tenha pensado?

Edit: Respondendo às perguntas do @KimKjörling:

  • Existem apenas 3 partições, /home , / e /swap . /opt não é somente leitura.
  • Sim, outra pessoa terá que usar este servidor se eu for atropelado por um ônibus.
  • Esses aplicativos são desenvolvidos internamente, então sou eu quem decide para onde as configurações devem ir. Se não fosse uma "meta tag", eu poderia ter colocado uma tag de práticas recomendadas.
  • Por fim, qualquer que seja a minha decisão, não importa, sei que os sistemas organizacionais são mais para o administrador do sistema do que para o funcionamento interno do SO, mas gosto de seguir as convenções padrão existentes por um motivo.
por durron597 14.08.2013 / 16:06

1 resposta

19

O Padrão de Hierarquia do Sistema de Arquivos requer que os arquivos de configuração para algo instalado em /opt/xyz entrem em /etc/opt/xyz , onde o xyz deve corresponder. Ou seja, um aplicativo instalado em um diretório em / opt , que requer informações específicas do host os arquivos de configuração devem ter um diretório correspondente em / etc / opt no qual esses arquivos de configuração vão.

O propósito de / etc (configuração do sistema específica do host) é simplesmente declarado como:

The /etc hierarchy contains configuration files. A "configuration file" is a local file used to control the operation of a program; it must be static and cannot be an executable binary.

É claro que nenhuma configuração é totalmente estática, mas eu tomaria "estática" neste contexto para significar "não muda sem a intervenção do administrador".

/ etc / opt é mais específico e seu objetivo é declarado como:

Host-specific configuration files for add-on application software packages must be installed within the directory /etc/opt/<subdir>, where <subdir> is the name of the subtree in /opt where the static data from that package is stored.

Como você está instalando o software em / opt, os arquivos de configuração devem entrar em um subdiretório ou hierarquia correspondente em / etc / opt.

É claro que nada exige que seu sistema esteja em conformidade com o FHS, mas facilitará muito para que outros encontrem arquivos que possam estar procurando, pois saberão onde podem espere encontrá-los.

Como se trata de software desenvolvido internamente, sugiro também que você torne a localização configurável . Mesmo que seja apenas configurável através de uma declaração de macro feita no makefile e efetuada através de uma reconstrução completa a partir da fonte, ainda é muito melhor do que codificar um local específico no código-fonte em todos os locais onde você deseja abrir um arquivo de configuração.

    
por 14.08.2013 / 20:45

Tags