2016-11-25 1 views
0

Plate-forme: RHEL7Comment lire un fichier journal continu à partir de la dernière ligne de lecture | Linux Shell

Situation:

  • Un JMeter fichier de rapport est ajouté avec de nouveaux résultats toutes les 5 minutes par script crontab
  • Un autre script awk ressemble pour un temps de réponse supérieur à 500 ms et envoie des alertes e-mail

problème Déclaration:

  • L'exigence est à analyser uniquement les lignes nouvellement ajoutées dans le fichier de rapport. Actuellement, le script awk lit le rapport complet à chaque fois
    et envoie des alertes même pour les événements plus anciens. awk -F "," '$ 4! = 200 || 14 $> 500' results.jtl
  • Bonne-to-have si le script awk peut lire à partir de la fin du fichier jusqu'à la ligne de lecture la dernière fois. Cela aidera à créer une alerte pour le dernier événement en premier.

Toute suggestion sera d'une grande aide.

+4

Avez-vous utilisé la commande 'tail -f'? – tkhm

+0

Essayons ça. 'queue -f results.jtl | awk -F "," '$ 4! = 200 || $ 14> 500'' – tkhm

+0

@tkhm Je pense que puisque le script est programmé en cron et s'exécute périodiquement, la commande _italic_tail -f_italic_ peut ne pas fonctionner. –

Répondre

1

Quel est le motif de ne pas utiliser:

  • Duration Assertion: pour les échantillons à défaut de quoi les temps de réponse sont plus de 500 ms
  • If Controller: avec état ${JMeterThread.last_sample_ok} qui vérifie si la dernière échantillonneur est réussi ou non
  • SMTP Request Sampler: pour envoyer un e-mail en cas d'échec