2 votes

Logique dynamique dans une variable d'environnement ?

J'invoque régulièrement un serveur distant particulier à partir d'une ligne de commande (Linux/bash) via des outils comme cURL ou wget. Ce serveur requiert un jeton d'authentification qui expire toutes les 10 minutes. J'ai un programme qui peut générer un nouveau jeton.

Ce que je voudrais, c'est une variable d'environnement, $TOKEN, que je peux utiliser à partir de la ligne de commande et qui se rafraîchit toutes les 10 minutes ou, mieux encore, qui ne se rafraîchit que sur demande, et même dans ce cas, toutes les 10 minutes au maximum.

J'espérais qu'il y avait un moyen de lier l'évaluation d'une variable d'environnement à un exécutable, me permettant de le faire avec un script. À défaut, je me demandais s'il y avait peut-être un moyen de configurer un processus d'arrière-plan qui mettrait à jour la variable d'environnement toutes les 10 minutes.

0voto

Dragan Points 21

Vous pourriez mettre en place une tâche cron qui appelle un script toutes les 10 minutes (ou tout autre intervalle de temps que vous souhaitez). Ensuite, le script met à jour la variable.

Voir : linux : comment modifier de manière permanente et globale les variables d'environnement

0voto

nandoP Points 1961

Vous pouvez créer un alias pour mettre à jour la variable env.

alias token='TOKEN=$(wget -q -O - - http://webserver.com/TOKEN )'

ou

alias token='TOKEN=$(/path/to/token-generator)'

alors, il suffit d'exécuter "token" pour définir cette variable pour la session en cours.

que vous pouvez ajouter à votre profil bash, afin que l'alias soit conservé lors de chaque connexion.

0voto

Sammitch Points 2072

Enregistrez deux variables d'environnement, TOKEN y 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.

Ainsi, vous n'avez pas besoin de stocker la logique dans une variable d'environnement [ew] ou de mettre en place une tâche cron. Le jeton est rafraîchi à la demande.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X