Porady Admina

Porady Admina: tail

Ostatnia aktualizacja: 14 września 2023, 22:56

W sześćdziesiątym wpisie z cyklu Porady Admina zajmiemy się programem tail.

Polecenia tail jest uzupełnieniem polecenia head i jak sama nazwa wskazuje, wypisuje ostatnie N danych z podanego wejścia. Domyślnie drukuje ostatnie 10 wierszy określonych plików. Jeśli podano więcej niż jedną nazwę pliku, dane z każdego pliku są poprzedzone nazwą pliku.

Składnia
tail OPCJA PLIK

Jeżeli nie został podany PLIK albo podany jest jako -, czytane jest standardowe wejście.

Opcje
Argumenty obowiązkowe dla opcji długich obowiązują również dla krótkich.
-c, –bytes=ILE : wypisanie ostatnich N bajtów; albo użyj -c +ILE aby wypisać od bajtu numer ILE z każdego z plików
-f, –follow[={name|descriptor}] : wypisywanie nowych danych kiedy plik rośnie; brakujący argument oznacza „descriptor”
-F : to samo co –follow=name –retry
-n, –lines=ILE : wypisanie ostatnich ILE linii zamiast ostatnich 10; albo użyj -n +ILE dla wypisania linii od linii numer ILE
–max-unchanged-stats=N : z –follow=name powoduje ponowne otwieranie PLIKU, który nie zmienił rozmiaru po N (domyślnie 5) iteracjach, dla sprawdzenia czy został usunięty albo przemianowany (częsty przypadek dla logów); ta opcja jest rzadko przydatna jeżeli dostępne jest inotify
–pid=PID : z -f – zakończenie pracy po zakończeniu procesu o numerze PID
-q, –quiet, –silent : bez wypisywania nagłówków z nazwami plików
–retry : stałe ponawianie próby otwierania pliku, nawet jeżeli jest niedostępny
-s, –sleep-interval=N : z -f – odczekanie po N sekund (domyślnie 1,0 s) między iteracjami; z inotify i –pid=P – sprawdzanie procesu P co najmniej co N sekund
-v, –verbose : wypisywanie zawsze nagłówków z nazwami plików
-z, –zero-terminated : separatorem linii jest znak NUL, nie znak nowej linii

Program tail jest częścią pakietu coreutils.

Przykłady

Plikiem, na którym będziemy pracować będzie moj.txt
cat moj.txt

To jest plik testowy
Druga linia tekstu testowego
Kolejny wiersz mojego pliku
Coś tam
Jeszcze więcej
kdjdhf dkdjdhd
oooeudh
osiem
przedostatnia może linia
dziesiąta linia tego pliku
Dodatkowa 11
12 linia do kompletu

Standardowe wyjście po użyciu tail jest 10 ostatnich linii:
tail moj.txt

Kolejny wiersz mojego pliku
Coś tam
Jeszcze więcej
kdjdhf dkdjdhd
oooeudh
osiem
przedostatnia może linia
dziesiąta linia tego pliku
Dodatkowa 11
12 linia do kompletu

Opcja -n drukuje podaną ilość ostatnich wierszy; można ją też użyć bez „n”
tail -n 3 moj.txt
tail -3 moj.txt

dziesiąta linia tego pliku
Dodatkowa 11
12 linia do kompletu

Tail zawiera również opcję „+”, której nie ma w poleceniu head. Z tą opcją komenda tail wypisuje dane zaczynając od podanego numeru linii pliku zamiast końca. Dla polecenia: tail +n nazwa_pliku, drukowanie danych rozpocznie się od linii o numerze „n” do końca podanego pliku.
tail +11 moj.txt

Dodatkowa 11
12 linia do kompletu

Opcja -c liczba drukuje ostatnią „liczbę” bajtów z określonego pliku. Nowa linia liczy się jako pojedynczy znak, więc jeśli tail wypisze nową linię, policzy ją jako bajt.
tail -c 10 moj.txt

Opcja -q jest używana, jeśli podano więcej niż 1 plik. Dzięki temu poleceniu dane z każdego pliku nie są poprzedzone nazwą pliku.
tail -q moj.txt moj2.txt

Opcja -f jest używana głównie przez administratora systemu do monitorowania wzrostu plików dziennika zapisywanych przez wiele programów uniksowych podczas ich działania. Ta opcja pokazuje dziesięć ostatnich wierszy pliku i aktualizuje się po dodaniu nowych wierszy. W miarę zapisywania nowych wierszy w dzienniku konsola będzie aktualizować nowe wiersze. Monit nie powraca nawet po zakończeniu pracy, więc musimy użyć klawisza przerwania, aby przerwać to polecenie.
tail -f plik.log

Więcej informacji o programie tail uzyskasz poleceniami:
man tail
tail --help

Click to rate this post!
[Total: 1 Average: 5]

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna jest chroniona przez reCAPTCHA i Google Politykę Prywatności oraz obowiązują Warunki Korzystania z Usługi.