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

Tail -f, feststellen, ob in eine Datei nicht mehr geschrieben wird?

Geschlossen. Diese Frage ist off-topic. Antworten werden derzeit nicht akzeptiert.

Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage so, dass sie für Unix &Linux Stack Exchange relevant ist.

Vor 7 Jahren geschlossen.


Verbessern Sie diese Frage

Ich verwende tail -f um das Wachstum einer Protokolldatei zu verfolgen. Ich habe Schwierigkeiten, einen Weg zu finden, um festzustellen, ob der Prozess, der in die Protokolldatei schreibt (wenn er abstürzt oder anderweitig beendet wird), nicht mehr auf die Datei zugreift oder in die Datei schreibt.

Hier ist das Skript, das ich verwende

tail -f log_file | while read LOGLINE
do
  echo -e "${LOGLINE}"
  if [[ "${LOGLINE}" == *ERROR* ]] ; then
  echo -e "ERROR FOUND : ${LOGLINE}n"

  # handle the error here

  fi
done

Was ist der einfachste und effizienteste Weg, um zu erkennen, dass der Prozess, der in die Protokolldatei schreibt, gestoppt wurde (oder dass tail -f keine Eingaben mehr empfängt) und eine Nachricht auf dem Bildschirm anzuzeigen, die mich auf das Ereignis hinweist?

Akzeptierte Antwort:

Zumindest wenn Sie Linux ausführen, tun Sie dies rückwärts. Sie sollten inotify verwenden um auf das Schreiben der Datei zu reagieren.

#!/bin/sh
while inotifywait -qe modify filename
do

done

das reicht.


Linux
  1. Wie kann man feststellen, welcher Prozess eine Datei erstellt?

  2. Skript, um festzustellen, ob Dateien Bilder sind?

  3. Abschneiden einer Datei während der Verwendung (Linux)

  4. Ist es sicher, eine Datei zu öffnen, die von einem laufenden Skript geschrieben wird?

  5. Feststellen, ob gerade auf die Datei geschrieben wird?

Linux-Dateibefehl:So bestimmen Sie den Dateityp in Linux

10 Schneller Linux-Tail-Befehl mit Beispielen

Linux-Tail-Befehl

Linux-Tail-Befehl mit Beispielen

So bestimmen Sie den MIME-Typ einer Datei in Linux

Gelöschte Datei wiederherstellen, in die gerade geschrieben wird