Dlaczego tryb mniejszego ogona przestaje działać?


11

Używanie lesspolecenia w systemie Linux w trybie tail (polecenie F lub mniej -f) konsekwentnie przestaje działać na niektórych komputerach i / lub niektórych plikach. Nowe zmiany po prostu przestają się pojawiać.

Wiem, że naprawiłem to już dawno temu, ale nie pamiętam, jakie było rozwiązanie.

Jakieś pomysły?


Czy próbowałeś użyć strace, aby zobaczyć, co robi (nie) robi? Może zobaczysz błąd.
wfaulk

Do Twojej wiadomości, pozostaje to bez odpowiedzi, ponieważ plik nie był walcowany / obracany / odtwarzany.
DRZEWO

Odpowiedzi:


12

Spróbuj użyć less --follow-name. Nawet jeśli plik ma tę samą nazwę, proces (y) aktualizujący go może to robić w sposób, który zmienia i-węzeł pliku - więc z punktu widzenia systemu operacyjnego jest to nowy plik po aktualizacjach.


+1 idealna odpowiedź, właśnie dlatego ta opcja została wprowadzona. Zauważ, że --follow-namezostał wprowadzony w mniejszej wersji v415 ( greenwoodsoftware.com/less/news.415.html ), wydanej 15 listopada 2007 r. Dlatego stara instalacja Linuksa może go nie mieć.
śleske

3

Czy przeglądasz pliki dziennika, które są obracane przez logrotate? Jeśli nazwa pliku, który jest mniej oglądany, zostanie zmieniona (np. Z dziennika na log.0 przez logrotate), less będzie nadal oglądać ten plik, nawet jeśli nowe wpisy są zapisywane w innym pliku (z oryginalną nazwą).


W takim przypadku spróbuj tail --follow = nazwa [nazwa pliku] (co powoduje, że tail okresowo otwiera plik na wypadek, gdyby jego nazwa została zmieniona). Zobacz gnu.org/software/coreutils/manual/html_node/…
Randy Orrison,

Nie, dzienniki się nie obracają. To ten sam plik.
DRZEWO

1

może mógłbyś tail -f [filename]zamiast tego spróbować ?


4
Z mniej, możesz „wstrzymać ogon” (używając Ctrl-c), aby przejść do określonej linii i wznowić później (używając F). Dlatego w niektórych przypadkach jest on preferowany nad „tail-f”.
dogbane

tail -f działa, ale wolałbym pracować w mniej.
DRZEWO

Widzę. Nie wiedział tego.
brandstaetter

0

Robię less +F --follow-name. --follow-namepo prostu monitoruje plik o tej samej nazwie bez odbierania nadchodzących zmian w moim przypadku (CentOS 7).

Właściwie tworzę do tego alias:

Dodaj tę linię w /etc/profile.d/alias.sh:

alias lf="less +F --follow-name"

Zapisz i zrób to, aby użyć go teraz. . /etc/profile.d/alias.sh

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.