Você pode configurar um cron job que chame um script a cada 10 minutos (ou qualquer intervalo de tempo desejado). Então o script atualiza a variável.
Veja: linux: como permanentemente e alterar globalmente variáveis de ambiente
Eu invoco regularmente um servidor remoto específico de uma linha de comando (Linux / bash) através de ferramentas como cURL ou wget. Este servidor requer um token de autenticação que expira a cada 10 minutos. Eu tenho um programa que pode gerar um novo token.
O que eu gostaria é de uma variável de ambiente, $ TOKEN, que eu possa usar a partir da linha de comando, que se atualiza a cada 10 minutos, ou melhor ainda, se atualiza somente quando solicitado, e mesmo assim a cada 10 minutos mais.
Eu esperava que houvesse uma maneira de vincular a avaliação de uma variável de ambiente a um executável, permitindo que eu fizesse isso com um script. Falhando nisso, eu queria saber se talvez houvesse uma maneira de configurar um processo em segundo plano que atualizasse a variável de ambiente a cada 10 minutos.
Você pode configurar um cron job que chame um script a cada 10 minutos (ou qualquer intervalo de tempo desejado). Então o script atualiza a variável.
Veja: linux: como permanentemente e alterar globalmente variáveis de ambiente
você pode criar um alias para atualizar o env var
alias token='TOKEN=$(wget -q -O - http://webserver.com/TOKEN)'
or
alias token='TOKEN=$(/path/to/token-generator)'
então, simplesmente executando "token" irá definir esse var para a sessão atual
você pode adicionar ao seu perfil bash, então o alias permanece nos logins
Armazene duas variáveis de ambiente, TOKEN
e TOKEN_TIMESTAMP
.
if [ $(($(date +%s) - $TOKEN_TIMESTAMP)) -ge 600 ]; then
/script/to/update/token.sh
TOKEN_TIMESTAMP=$(date +%s) # this should be in the above script.
fi
/script/that/uses/token.sh # everything could be in this one script.
Desta forma, você não precisa armazenar lógica em uma variável de ambiente [ew] ou configurar um cron job. O token é atualizado sob demanda.