Chcę wykonać proste obliczenie liczby linii na minutę dodanych do pliku dziennika.
Chcę również przechowywać liczbę dla każdej sekundy.
Potrzebuję danych wyjściowych następującego polecenia jako listy, która będzie aktualizowana co sekundę:
watch -n1 'wc -l my.log'
Jak wypisać „aktualizację” polecenia „obserwuj” jako listę?
wait
- po prostu spróbujwatch -n 1 "sleep 5"
.watch
była przydatna, ale to nie daje nawet tego, więc twoje rozwiązanie jest tak dobre, jak rozwiązanie oparte na zegarku, ale żadne z nich nie odpowiada z dużą dokładnością na pytanie „szybkość, z jaką plik dziennika rośnie” .watch
ma-p
opcję, która zrobi to dobrze, jeśli to w ogóle możliwe (oczywiście, nie możesz wykonać polecenia, które zajmuje 5 sekund co 1 sekundę, jeśli nie masz pozwolenia na wiele jednoczesnych). Wiem, napisałem to :-PStare pytanie, ale właśnie znalazłem bardzo łatwą odpowiedź:
Spowoduje to wykonanie
wc
każdej sekundy, dodanie danych wyjściowych do pliku Statistics.log, a także wyświetlenie go na ekranie.Otrzymasz plik wypełniony liczbami reprezentującymi kolejną liczbę wierszy
my.log
.źródło
watch "($MYCMD | tee -a $MYLOG)"
nie jestwatch "($MYCMD)" | tee -a $MYLOG
. Jeśli pomyliłeś się tak jak ja, wynik będzie bardzo, bardzo mylący. Inną rzeczą wartą odnotowania jest to, że to polecenie domyślnie nie dodaje znacznika czasu wykonania każdego polecenia, więc odpowiedź z pętlą może nadal działać lepiej.Co powiesz na
źródło
Spróbuj wykonać następujące czynności:
źródło
Natknąłem się na to pytanie, gdy próbowałem uzyskać lepsze / zarejestrowane dane wyjściowe
du -sh $data_path
. Użyłem wzorca „while while, do sleep” znalezionego tutaj, ale użyłem złożonego AWK, aby uzyskać pożądany wynik.Zrobiłem to jako oneliner i dlatego są średniki. Ale żeby było czytelne, wyrwałem to. Dane wyjściowe wyglądają następująco:
źródło
Możesz stworzyć skrypt, który zrobi to za Ciebie. Zadzwoniłem do mojego
keep
(jak, rób to dalej) i umieściłem go nabin
ścieżce.To jest mój skrypt:
źródło
"$@"
do wykonania polecenia (argumentów) zamiast bez cudzysłowu$*
. W ten sposób powłoka będzie przechowywać argumenty cytowane itp., Tak jak użytkownik by ich oczekiwał. FTFY.