Onde armazenar o estado interno do programa?

3

Eu preciso escrever um programa ou um script bash, que será executado de vez em quando (baseado no cron). O programa conterá uma máquina de estados e se comportará de maneira diferente, dependendo do estado em que se encontra.

O programa (ou script bash) não é específico do usuário, portanto, não deve estar na pasta / home.

Onde (por convenção) armazenar o arquivo com o estado interno do programa no Ubuntu Server?

Pergunta bônus: qual é o melhor lugar para o script em si?

    
por Eiver 23.05.2017 / 14:13

3 respostas

3
  

Qual é o melhor lugar para o script em si?

Isso poderia ser ...

/usr/local/bin/
  

Onde (por convenção) armazenar o arquivo com o estado interno do programa no Ubuntu Server?

Eu não acho que exista tal localização. Você poderia usar /var/local/ . Eu vi vários métodos e um popular parece usar /opt/ . Desta forma:

/opt/{software_name}/ 
/opt/{software_name}{.version_1}/
/opt/{software_name}{.version_2}/
...

onde o primeiro é um link simbólico para a versão ativa. E um ./bin dentro desses diretórios para os binários, um ./log para um log (rotacionado) e, no seu caso, um ./state com ou sem um identificador exclusivo. E tudo configurado para usuário root com permissões n00 para que ninguém possa ler o conteúdo de "estado".

Deixa claro onde você pode encontrar qualquer coisa que você precisa.

    
por Rinzwind 23.05.2017 / 14:22
3

Eu criaria uma pasta para os dados em /var/local/ e armazenaria o script em /usr/local/bin/

    
por Florian Diesch 23.05.2017 / 14:22
3

Se você quiser que seu script esteja disponível para todos os usuários, coloque-o em /usr/local/bin , é o melhor lugar para scripts e programas quando você os instala manualmente, enquanto outros locais são gerenciados pelo gerenciador de pacotes. Se esse script for apenas para moderadores, ele deverá ser colocado em /usr/local/sbin .

Para salvar o estado do seu script, você deve considerar que usuário executará o script? você vai rodar usando root no seu arquivo crontab ? Se for esse o caso, você deve salvar o estado no diretório inicial do root, na minha opinião. você também pode considerar usar /tmp

    
por Ravexina 23.05.2017 / 14:20

Tags