Warum funktioniert weniger Tail-Modus nicht mehr?

11

Die Verwendung des lessBefehls unter Linux im Endmodus (Befehl F oder weniger -f) funktioniert auf bestimmten Computern und / oder bestimmten Dateien nicht mehr. Neue Änderungen werden einfach nicht mehr angezeigt.

Ich weiß, dass ich das schon vor langer Zeit behoben habe, aber ich kann mich nicht erinnern, was die Lösung war.

Irgendwelche Ideen?

BAUM
quelle
Haben Sie versucht, mit strace zu sehen, was es (nicht) tut? Vielleicht sehen Sie einen Fehler.
Wfaulk
Zu Ihrer Information, dies bleibt unbeantwortet, da die betreffende Datei nicht gerollt / gedreht / neu erstellt wurde.
Baum

Antworten:

12

Versuchen Sie es mit less --follow-name. Selbst wenn die Datei denselben Namen hat, können die Aktualisierungsprozesse dies auf eine Weise tun, die den Inode der Datei ändert. Aus Sicht des Betriebssystems handelt es sich also nach den Aktualisierungen um eine neue Datei.

Doug Harris
quelle
+1 perfekte Antwort, deshalb wurde diese Option eingeführt. Beachten Sie, dass dies --follow-namein weniger v415 ( greenwoodsoftware.com/less/news.415.html ) eingeführt wurde und am 15. November 2007 veröffentlicht wurde. Daher ist es in der alten Linux-Installation möglicherweise nicht vorhanden.
Sleske
3

Zeigen Sie Protokolldateien an, die von logrotate gedreht werden? Wenn die Datei, die weniger anzeigt, umbenannt wird (z. B. von log nach log.0 per logrotate), überwacht less diese Datei weiterhin, obwohl neue Einträge in eine andere Datei (mit dem ursprünglichen Namen) geschrieben werden.

Randy Orrison
quelle
Wenn dies der Fall ist, versuchen Sie tail --follow = name [Dateiname] (was dazu führt, dass tail die Datei regelmäßig neu öffnet, falls sie umbenannt wird). Siehe gnu.org/software/coreutils/manual/html_node/…
Randy Orrison
Nein, die Protokolle drehen sich nicht. Es ist die gleiche Datei.
Baum
1

Vielleicht könntest du es tail -f [filename]stattdessen versuchen ?

brandstaetter
quelle
4
Mit weniger können Sie "Ihren Schwanz anhalten" (mit Strg-c), um zu einer bestimmten Zeile zu gelangen und später fortzufahren (mit F). Deshalb wird es in einigen Fällen "tail -f" vorgezogen.
Dogbane
tail -f funktioniert, aber ich würde es vorziehen, in weniger zu arbeiten.
Baum
Aha. Wusste ich nicht.
Brandstaetter
0

Das tue ich less +F --follow-name. --follow-nameüberwacht nur die gleichnamige Datei, ohne die eingehenden Änderungen in meinem Fall zu erhalten (CentOS 7).

Eigentlich erstelle ich dafür einen Alias:

Fügen Sie diese Zeile hinzu in /etc/profile.d/alias.sh:

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

Speichern Sie es und beschaffen Sie es, um es jetzt zu verwenden. . /etc/profile.d/alias.sh

WesternGun
quelle