我经常使用cURL或wget等工具从(Linux / bash)命令行调用特定的远程服务器。 此服务器需要每10分钟过期的authentication令牌。 我有一个程序,可以生成一个新的令牌。
我想要的是一个环境variables$ TOKEN,我可以从命令行使用这个variables,每10分钟刷新一次,或者更好的是,只有在请求时刷新自己,甚至最多只有每10分钟刷新一次。
我希望有一种方法可以将环境variables的评估与可执行文件绑定在一起,从而允许我通过脚本来执行此操作。 否则,我想知道是否有办法设置一个后台进程,每10分钟更新一次环境variables。
你可以设置一个每10分钟调用一次脚本的cron作业(或者任何你想要的时间间隔)。 然后脚本更新variables。
请参阅: linux:如何永久和全局更改环境variables
你可以创build一个别名来更新env var
alias token ='TOKEN = $(wget -q -O – http://webserver.com/TOKEN )'
要么
alias token ='TOKEN = $(/ path / to / token-generator)'
那么,简单地运行“令牌”将为当前会话设置该var
你可以添加到你的bashconfiguration文件,所以别名仍然是login
存储两个环境variablesTOKEN
和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.
这样你就不必将逻辑存储在环境variables[ew]中,或者设置一个cron作业。 令牌按需刷新。