Ich möchte so etwas machen:
watch tail -f | wc -l
#=> 43
#=> 56
#=> 61
#=> 44
#=> ...
Jede Sekunde werden neue Schwanzlinien gezählt
/ Linux, CentOs
Um klarer zu sein. Ich habe so etwas:
tail -f /var/log/my_process/*.log | grep error
Ich lese einige Fehlermeldungen. Und jetzt möchte ich sie zählen. Wie viele ~ Fehler habe ich in einer Sekunde bekommen. Eine Zeile in einem Protokoll ist also ein Fehler in einem Prozess.
tail -f /path/to/file
alleine zu verwenden . Wenn Sie Dateizeilen überwachen möchten, können Sie verwendenwatch wc -l /path/to/file
.tail -f /var/log/my_process/*.log |grep error > /tmp/error.lines & ; watch wc /tmp/error.lines
? Dann mach Mathe.Antworten:
Ich habe kürzlich pv entdeckt und es ist wirklich cool, man könnte so etwas machen
tail -f logfile | pv -i2 -ltr > /dev/null
quelle
Hier ist eine schnelle und schmutzige Methode. Sie möchten im Grunde das
tail
und daswatch wc
in separate Teile zerlegen und etwas tun wie:An diesem Punkt können Sie rechnen, um eine Fehler- / Sek. -Nummer zu erhalten. Wenn Sie dies jedoch nur für eine einmalige Überprüfung Ihrer Fehlerrate tun, ist Quick-and-Dirty möglicherweise gut genug.
quelle
Falls pv nicht verfügbar ist, kann dies mit perl durchgeführt werden:
Jede Sekunde:
Alle 10 Sekunden
Beispielausgabe:
quelle
Sie könnten so etwas versuchen:
Es druckt die Zeilennummer vor jeder Zeile.
quelle
nl
wird dies tun, ohne dass der Anruf an Perl erforderlich ist.