É seguro armazenar dados persistentes em / var / app_name /

3

Eu quero criar um diretório para todo o sistema, que contenha dados específicos do aplicativo (leitura-gravação) (como arquivos de log, configurações e outros metadados específicos do aplicativo).

Depois de ler um pouco mais sobre o sistema de arquivos Linux, pensei em usar /var/app_name/ , mas descobri que alguns dos subdiretórios são temporários (não persistentes entre reinicializações, como run , log , tmp ).

Quão significativo é isso? Quero dizer, devo usar outro diretório (como /home/app_name/ ) ou usar /var/app_name/ está OK?

    
por Kiril Kirov 02.05.2017 / 15:24

2 respostas

4

Do Padrão de hierarquia do sistema de arquivos :

Applications must generally not add directories to the top level of /var. Such directories should only be added if they have some system-wide implication, and in consultation with the FHS mailing list.

Você deve usar /etc/app_name/ para armazenar arquivos de configuração e outras coisas para o seu programa e /var/log/app_name/ para armazenar seus arquivos de log.

Para os dados usados pelo aplicativo, você pode armazenar:

  • em /var/lib/app_name/ os dados e metadados persistentes
  • em /var/cache/app_name/ qualquer cache de aplicativo que possa ser excluído com segurança
  • em /var/spool/app_name/ os dados que aguardam processamento

Definitivamente, não use /home/app_name/ , que é reservado para o homedir do usuário app_name . Se o seu programa precisar criar um usuário específico para ser executado, esse será seu lugar.

Sobre sua pergunta no comentário: O Linux não exclui nem gira os logs automaticamente para qualquer coisa que você coloque em /var/log/ . Na verdade, muitas vezes os administradores têm o problema oposto dos logs preenchendo todo o espaço ... Então, cabe a você excluir ou girar arquivos de log; isso é feito por meio de logrotate ou de uma tarefa cron personalizada.

    
por 02.05.2017 / 16:15
2

Deve ser seguro usar /var/app_name para armazenar dados persistentes para um aplicativo chamado app_name .

No sistema que estou usando no momento, os diretórios de banco de dados padrão para PostgreSQL e MySQL (MariaDB) são /var/postgresql e /var/mysql , por exemplo.

/var/tmp só deve ser usado para arquivos temporários, mas é improvável que um sistema limpe esse diretório (em reinicializações, por exemplo, diferente de /tmp ). /var/run é mais usado para armazenar arquivos PID e soquetes nomeados.

Eu evitaria /home/app_name , pois /home é mais frequentemente associado a diretórios de contas pessoais.

Veja também: link

Um aplicativo pode optar por armazenar seu arquivo de configuração em /etc , seus arquivos de log em /var/log e dados em /var/app_name . No caso do PostgreSQL e do MariaDB que usei como exemplos acima, eles armazenam tudo, exceto os ganchos de inicialização do sistema em /var .

    
por 02.05.2017 / 15:37