Je veux faire quelque chose comme ça:
watch tail -f | wc -l
#=> 43
#=> 56
#=> 61
#=> 44
#=> ...
Il compte de nouvelles lignes de queue chaque seconde
/ Linux, CentOs
Pour être plus clair. J'ai quelque chose comme ça:
tail -f /var/log/my_process/*.log | grep error
Je lis des messages d'erreur. Et maintenant je veux les compter. Combien d'erreurs ~ j'ai en une seconde. Donc, une ligne dans un journal est une erreur dans un processus.
tail -f /path/to/file
seules. Si vous voulez regarder les lignes de fichiers, vous pouvez utiliserwatch wc -l /path/to/file
.tail -f /var/log/my_process/*.log |grep error > /tmp/error.lines & ; watch wc /tmp/error.lines
? Ensuite, faites des maths.Réponses:
J'ai récemment découvert le pv, et c'est vraiment cool, vous pourriez faire quelque chose comme
tail -f logfile | pv -i2 -ltr > /dev/null
la source
Voici une méthode rapide et sale. Vous voulez essentiellement diviser le
tail
et lewatch wc
en parties distinctes et faire quelque chose comme:à ce moment, vous pouvez faire des calculs pour obtenir un nombre d'erreurs / s. Mais, si vous faites juste cela pour un examen ponctuel de votre taux d'erreur, rapide et sale pourrait être suffisant.
la source
Si pv n'est pas disponible, cela peut être fait avec perl:
Toutes les secondes:
Toutes les 10 secondes
Exemple de sortie:
la source
Vous pouvez essayer quelque chose comme ceci:
Il imprime le numéro de ligne devant chaque ligne.
la source
nl
fera, ne nécessitant pas l'appel à perl.