tail -f, ale najpierw wessaj zawartość pliku (alias `cat -f`)


9

Muszę wyświetlić cały plik przed śledzeniem go pod kątem nowych zmian, nie tylko ostatnich 10 linii (tak, wiem, że nie jest to ogon koncepcyjnie). Innymi słowy, coś takiego cat -fby zrobiłoby, gdyby kiedykolwiek istniało. Mężczyzna Ogona nie daje mi żadnych pomysłów. Jedyną opcją, którą teraz widzę, jest połączenie kota z wyjątkiem 10 ostatnich linii i wyjścia tail -f .

Wszelkie wskazówki, proszę?


3
cat $f && tail -n0 -f $fprzychodzi na myśl, a sprawdzenie strony podręcznika, jak wygląda, tail -c0 -f $fmoże również zrobić to, co chcesz (i lepiej, ponieważ nie tworzy warunków wyścigu między dwoma procesami, w których zapisane dane można zignorować). Nie mam teraz dostępu do systemu Linux, ale czy jedno z nich robi to, co chcesz?
CVn

Jest to przydatne i właśnie dodałem taką funkcję do języka programowania: „strumień ogona”, który może odczytywać plik normalnie od początku do końca, a następnie przechodzi w tryb „ogona-f” na końcu, a także może zauważyć, że plik został zastąpiony krótszym lub obcięty i wykonaj następujące czynności. Potrzebujesz tego, aby móc wykonywać takie czynności, jak przetwarzanie istniejących dzienników (nadrabianie zaległości), a następnie przetwarzanie nowych wpisów.
Kaz

Odpowiedzi:


14

Oto jeden ze sposobów, aby to zrobić:

tail -f -n+0 /var/log/messages

Wydaje się, że nie ma żadnej różnicy między a +0a a +1, więc byłoby to równoważne:

tail -f -n+1 /var/log/messages

2
Odpowiednia część strony podręcznika (oszczędzaj ludziom pisania) ... -n, --lines = K wypisuje ostatnie K wierszy zamiast ostatnich 10; lub stosowanie N + K do linii wyjściowych wyjściowych z k-
obłąkany jeż
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.