Chcę zrobić coś takiego:
watch tail -f | wc -l
#=> 43
#=> 56
#=> 61
#=> 44
#=> ...
Co sekundę liczy nowe linie ogona
/ Linux, CentOs
Aby być bardziej przejrzystym. Mam coś takiego:
tail -f /var/log/my_process/*.log | grep error
Czytam niektóre komunikaty o błędach. A teraz chcę je policzyć. Ile ~ błędów mam w sekundę. Tak więc jedna linia w dzienniku to jeden błąd w procesie.
tail -f /path/to/file
samego. Jeśli chcesz oglądać wiersze pliku, możesz użyćwatch wc -l /path/to/file
.tail -f /var/log/my_process/*.log |grep error > /tmp/error.lines & ; watch wc /tmp/error.lines
? Następnie zrób matematykę.Odpowiedzi:
Niedawno odkryłem pv i jest naprawdę fajnie, możesz zrobić coś takiego
tail -f logfile | pv -i2 -ltr > /dev/null
źródło
Oto szybka i brudna metoda. Zasadniczo chcesz rozbić
tail
iwatch wc
na osobne części i zrobić coś takiego:w którym momencie możesz wykonać matematykę, aby uzyskać liczbę błędów / sekundę. Ale jeśli robisz to tylko w celu jednorazowego zbadania poziomu błędu, szybkie i brudne rozwiązanie może być wystarczająco dobre.
źródło
Jeśli pv nie jest dostępne, można to zrobić za pomocą perla:
Co sekundę:
Co 10 sekund
Przykładowe dane wyjściowe:
źródło
Możesz spróbować czegoś takiego:
Drukuje numer linii przed każdą linią.
źródło
nl
zrobi to, nie wymagając wywołania perla.