Je surveille un fichier journal et si PATTERN
n'est pas apparu dans le film. THRESHOLD
secondes, le script doit imprimer "error", sinon, il doit imprimer "clear". Le script fonctionne bien, mais seulement si le journal tourne.
J'ai essayé de lire 'timeout' mais ça n'a pas marché.
log_file=/tmp/app.log
threshold=120
tail -Fn0 ${log_file} | \
while read line ; do
echo "${line}" | awk '/PATTERN/ { system("touch pattern.tmp") }'
code pour calculer depuis combien de temps pattern.tmp a été touché et la même chose est assignée à DIFF
if [ ${diff} -gt ${threshold} ]; then
echo "Error"
else
echo "Clear"
done
Il fonctionne comme prévu uniquement lorsqu'il y a une ligne 'any' imprimée dans le app.log.
Si l'application s'est arrêtée pour une raison quelconque et que le journal s'est arrêté de tourner, il n'y aura pas de sortie par le script.
Existe-t-il un moyen de détecter l'absence de sortie de l'appareil ? tail
et faire une commande à ce moment-là ?