Estou desenvolvendo um pequeno script bash Y, que conta linhas, caracteres e tamanho de arquivo de um determinado script bash X e armazena os resultados da primeira execução do dia em algum lugar.
Ao executar tempos adicionais para o script bash X, ele deve comparar o valor armazenado com a nova recuperação de valor, exibir o que mudou e em que porcentagem. Por exemplo, "Tamanho do arquivo: -12%" para o script bash X sendo 12% menor em tamanho de arquivo desde a primeira execução do dia.
Portanto, os dados armazenados da primeira execução têm vida curta, mas devem sobreviver a uma reinicialização. A validade é de 1 dia. Portanto, reinicializações ou desligamentos NÃO devem encerrar a vida útil dos dados armazenados, mas assim que 24 horas se passaram, a próxima execução do script bash Y deve substituir os dados antigos do script bash X pelos novos dados de script bash X.
Qual é o melhor lugar para colocar esse tipo específico de dados de acordo com a Estrutura de Hierarquia de Arquivos do Linux ou o Padrão de Hierarquia do Sistema de Arquivos (FHS)?
Você vê: esses dados têm vida semicurta; se fosse de curta duração, seria desfeito e substituído a cada reinicialização ou desligamento. Nesse caso, não há dúvida de que /tmp/ seria um local decente para esses dados produzidos pelo script. Mas, dito isso, um caso um pouco mais duradouro, que supostamente sobreviverá a reinicializações e desligamentos, mas não a uma janela de tempo além de 24h? Onde colocar esse tipo de dados para um script bash funcional? Presumo /var ou /usr/local/… talvez como diretório base e, em seguida, coloco um subdiretório próprio chamado 'bash script Y' nele…
Se forem dados que pertencem a um usuário humano, o lugar certo seria
$XDG_STATE_HOME
, cujo padrão é$HOME/.local/state
, de acordo com a especificação freedesktop XDG .Em analogia a isso, eu colocaria dados temporários do daemon
/usr/local/state
- mas isso não seria compatível com FHS, o que diz que você deveria colocar tal estado em/var/lib/<yourprogramsname>
.