J'ai un script bash qui est exécuté tous les 10m par cron
. Le script effectue un calcul coûteux pour une certaine valeur (disons la variable x = valeur). J'ai besoin de "mettre en cache" cette valeur pendant 2-3 heures. Quelles sont les solutions possibles à ce problème?
J'ai essayé memcached mais ça ne semble pas bien jouer avec bash.
Ecrire un deuxième script qui effectue le calcul réel et enregistre le résultat dans un file:
# calculate $curval echo $curval > /var/foo/value.txt
Planifiez-le avec cron
pour courir toutes les 2-3 heures.
Dans le script "toutes les 10 minutes", il suffit de lire la valeur actuelle du file:
curval=`cat /var/foo/value.txt`
Un raffinement agréable consiste à appeler le script de calcul à partir du script "toutes les 10 minutes" si le file value.txt
n'existe pas encore. Vous pouvez même append l'input crontab
si elle est manquante.
Je suis d'accord avec l'écriture du résultat dans un file, définissez la variable dans le file
curval=the_value
Puis dans le shell (ou un autre script)
source current_variable_value_result_file