Jak wyświetlić najnowsze x wierszy z dziennika usługi systemctl


21

Szukam sposobu, aby po prostu wydrukować ostatnie X wierszy z usługi systemctl w Debianie. Chciałbym zainstalować ten kod w skrypcie, który wykorzystuje wydrukowane i najnowsze wpisy dziennika. Znalazłem ten post, ale nie byłem w stanie go zmodyfikować do moich celów.

Obecnie używam tego kodu, który daje mi tylko krótki fragment plików dziennika:

journalctl --unit=my.service --since "1 hour ago" -p err

Aby podać przykład, jak powinien wyglądać wynik, wystarczy wpisać polecenie powyżej dla dowolnej usługi i przewijać do końca dziennika. Następnie skopiuj ostatnie 300 wierszy, zaczynając od dołu.

Moim pomysłem jest użycie egrep ex. egrep -m 700 .ale odtąd nie miałem szczęścia.

Odpowiedzi:



7

Po prostu potokuj wyjście do tail:

journalctl --unit=my.service | tail -n 300

tailKomenda drukuje ostatnie linie (domyślnie 10) otrzymało w stdin stdout.


1
Całkowicie zapomniałem o ogonie - świetny pomysł, dziękuję bardzo!
user3191334

5
Ogon może być boleśnie powolny w przypadku dużych kłód. Wbudowane w -ndziennikrrl jest tym, czego chcesz. np.journalctl -n 300
Drakes

4

Jeśli chcesz zobaczyć ostatnie n liczbę wierszy i zobaczyć nowe wiadomości, ponieważ są one drukowane w dzienniku, spróbuj tego:

journalctl -u <service name> -n <number of lines> -f

Gdzie -nwskazuje liczbę wierszy, które chcesz zobaczyć od końca dziennika, i -fokreśla, że ​​chcesz śledzić dziennik, gdy się zmienia.


4

Właśnie:

journalctl -u SERVICE_NAME -e

Parametr -eoznacza:

-e - pagerend; Natychmiast przeskocz na koniec dziennika w domyślnym narzędziu pager. Oznacza to -n 1000, aby zagwarantować, że pager nie buforuje dzienników o nieograniczonym rozmiarze. Można to zastąpić jawnym -n z inną wartością liczbową, podczas gdy -nall wyłączy to ograniczenie.


1

od czasu rozwiązania komendy tail aleady pod warunkiem. Próbowałem przy użyciu komendy sed i działało dobrze

Poniższe polecenie wyświetli ostatnie 300 wierszy

journalctl --unit=my.service | sed -e :a -e '$q;N;301,$D;ba' 
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.