GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Überwachen Sie kontinuierlich Protokolle mit gelegentlich gedrehtem Schwanz

Lösung 1:

Ah, dafür gibt es eine Flagge.

statt tail -f /var/log/file zu verwenden wir sollten tail -F /var/log/file verwenden

tail -F übersetzt zu tail --follow=name --retry wie in;

  • --follow=name :Folgen Sie dem Namen der Datei anstelle des Dateideskriptors
  • --retry :Wenn auf die Datei nicht zugegriffen werden kann, versuchen Sie es später erneut, anstatt zu sterben

Lösung 2:

# tail --follow=mylog.log

Von Mannschwanz :

With --follow (-f), tail defaults to  following  the  file  descriptor,
       which  means that even if a tail’ed file is renamed, tail will continue
       to track its end.  This default behavior  is  not  desirable  when  you
       really want to track the actual name of the file, not the file descrip‐
       tor (e.g., log rotation).  Use --follow=name in that case.  That causes
       tail  to track the named file by reopening it periodically to see if it
       has been removed and recreated by some other program.

Also in diesem Fall mit dem -F Option wäre richtig.

-F     same as --follow=name --retry

Lösung 3:

Die genaue Antwort hängt von Ihrem Betriebssystem ab - aber in vielen Fällen tail -F wird das Richtige tun.

Lösung 4:

tail -Für tail --follow=name

Lösung 5:

IMHO ist es etwas seltsam, Ihre Protokolldatei nach GRÖSSE und nicht nach Datum zu ändern. Die meisten Systemprotokolle (in Unix oder Linux) rotieren auf wöchentlicher oder monatlicher Basis und nicht basierend auf der Größe ... Das ist etwas, das ich aus verschiedenen Gründen mag, und auch etwas, das, wenn es implementiert wird, Ihr Problem lösen würde.

Acht Jahre später weiß ich nicht, wovon zum Teufel ich hier gesprochen habe:Es gibt unzählige Orte, an denen Sie nach Größe rotieren möchten, da tägliche/wöchentliche/monatliche Rotationen MASSIVE Dateien hervorbringen können, die ernsthafte Probleme verursachen können. P>

Aus einer erfahreneren Perspektive ist die eigentliche Frage, warum Sie sich hinsetzen und eine Datei kontinuierlich verfolgen möchten, die so schnell wächst, dass Sie sie mehr als täglich drehen müssen ... Es wäre, als würden Sie den Matrix-Stream vorbeischauen.

Heutzutage sollten Sie sich besser mit einer großen Datenprotokollaggregation wie Splunk oder Sumologic befassen, bei der Protokollereignisse in Klassen gefiltert und basierend auf bestimmten Protokollwerten ausgelöst werden können ... Sie müssen überhaupt keine Live-Protokolle ansehen.


Linux
  1. Werkzeug, um die Zeilen in einer Datei zu erhalten, die nicht in einer anderen sind?

  2. Alle Verzeichnisse auflisten, die keine Datei mit einem bestimmten Dateinamen enthalten?

  3. Wie kann man eine Datei ausgeben und Zeilen ignorieren, die mit „?“ beginnen?

  4. Warnung mit nftw

  5. Wie man -f die neueste Protokolldatei mit einem bestimmten Muster tailt

10 Schneller Linux-Tail-Befehl mit Beispielen

Linux-Tail-Befehl

Linux-Tail-Befehl mit Beispielen

Linux-WC-Befehl mit Beispielen

Verwalten von Protokollen mit Logrotate auf Ubuntu

Entfernen Sie Dateien, die in einer Textdatei aufgeführt sind