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.