Ich habe eine Software, die ihre Protokolldateien beim Neustart dreht. Während der Entwicklung starte ich es jedoch häufig neu, sodass ich die neueste Protokolldatei jederzeit überwachen möchte.
Wenn ich less
normal mit beginne less program.log
und Shift+ fbis zum Ende drücke, wenn die Protokolldatei gedreht wird, überwache ich weiterhin die alte Protokolldatei. Ich gehe davon aus, dass dies daran liegt, dass die Inode-Nummer gleich bleibt und less
ein offenes Dateihandle für diesen Inode hat.
Ist es möglich, die neuesten Aktivitäten in der aktuell aufgerufenen Protokolldatei zu überwachen program.log
?
Insbesondere arbeite ich an Sun OS, daher wäre eine Lösung, die dort funktioniert, ideal.
tail -F program.log | less
wird es funktionierentail -f program.log
hast du das versuchtAntworten:
Verwenden
less --follow-name
Sie diese Option, wenn Ihre Version diesless
unterstützt. Diese Option wurde in Version 416 eingeführt.quelle
Die
less
Option--follow-name
ist nur ein Teil der Lösung.Zum Ersetzen
tail -F
wird ein anderes Argument benötigt:Die Option allein wie
less --follow-name file.log
folgt nach den Dateiaktualisierungen nicht. Sie müssen in den Folgemodus wechseln, indem Sie drücken ShiftF.(Verlassen Sie den Navigationsmodus ControlC.)
Anstatt der Datei zu folgen, wird
--follow-name
das Verhalten von weniger geändert .Die Befehlstaste ShiftFinnerhalb von
less
follow basiert auf dem Dateinamen und nicht auf dem Dateideskriptor.Es gibt auch keine normale Option, um
less
im Folgemodus zu starten .Sie können jedoch die Befehlszeile verwenden, um Tastenanschläge nach dem Start auszuführen , indem Sie ihnen ein Präfix voranstellen
+
.Die Modifikator Option Kombinieren mit
+F
,less
beginnt tatsächlich in dem (modifizierte) Folgemodus.Verwenden Sie
+F
allein für das Äquivalent von plaintail -f
:quelle
Ich habe gerade die Antwort in diesen U & L-Fragen und Antworten mit dem Titel gefunden: Wie
tail -f
erstelle ich eine von Protokollen gedrehte Datei? .Verwenden von
tail
:(Wenn die Installation von GNU Tail auf Ihrem System eine Option ist)
Von der Heck-Manpage :
Der Schlüssel ist der
--retry
Schalter. Dies weist dentail
Befehl an, erneut zu versuchen, einer Datei mit Namen zu folgen. Der-F
Schalter macht sowohl a-f
als auch a--retry
.Verwenden von
less
Wie @StephaneChazela in den Kommentaren hervorhob, wird das Folgende nicht funktionieren.
Die einzige andere Möglichkeit, die Sie haben, besteht darin, weniger direkt zu verwenden, vorausgesetzt, sie unterstützt den
--follow-name
Switch undless
die Datei direkt und verzichtettail
vollständig auf die Verwendung .quelle
less
hängt, wenn Sie "G" pr "F" tun. Was du unterbrechen kannst, indem du "Strg-C" machst, aber dann tötet es den Schwanz. Sie können dann den Schwanz gegen Strg-C immunisieren, aber es ist immer noch nicht sehr brauchbar.