Logfiles kontinuierlich auswerten

31/07/2008 - 10:44 von Wolfgang Ewert | Report spam
Hi,

zum Auswerten von Logfiles nehme ich gewöhnlich Kombinationen aus less,
grep, sed und gelegentlich awk oder cut:

# less /var/log/mail-*gz /var/log/mail | grep amavis | grep SPAM |\
awk '{print $9 " " $2 " " $3}' | less

Damit lassen sich die Logfiles statisch filtern / auswerten.

Eine dynamische Anzeige ist mit
# less -S /var/log/mail-*gz /var/log/mail
und der Tastenkombi "F" + ^C möglich.

Was mir fehlt, ist:
Diese beiden Funktionen zu verknüpfen.

"F" in less wirkt nur auf das letzte less. tail -f kann nichts mit
gegnuzippten Dateien anfangen, (z)grep liefert keinen kontinuierlichen
Input. Mmmmh.

Danke & Gruß
Wolfgang
Nirgendwo hàngt der Schulerfolg so stark von Einkommen und Vorbildung
der Eltern ab wie in D'land. Das dt. Schulsystem versagt bei der
Förderung von Arbeiter- und Migrantenkindern. (dpa/FTD 22.11.04)
 

Lesen sie die antworten

#1 Helmut Waitzmann
01/08/2008 - 03:25 | Warnen spam
Wolfgang Ewert writes:

zum Auswerten von Logfiles nehme ich gewöhnlich Kombinationen aus less,
grep, sed und gelegentlich awk oder cut:

# less /var/log/mail-*gz /var/log/mail | grep amavis | grep SPAM |\
awk '{print $9 " " $2 " " $3}' | less

Damit lassen sich die Logfiles statisch filtern / auswerten.

Eine dynamische Anzeige ist mit
# less -S /var/log/mail-*gz /var/log/mail
und der Tastenkombi "F" + ^C möglich.

Was mir fehlt, ist:
Diese beiden Funktionen zu verknüpfen.

"F" in less wirkt nur auf das letzte less. tail -f kann nichts mit
gegnuzippten Dateien anfangen, (z)grep liefert keinen kontinuierlichen
Input. Mmmmh.



Mit GNU-»tail«:

(
set '' && shift &&
for file in /var/log/mail-*gz
do
fifo="${file##*/}".fifo && mkfifo -- "$fifo" &&
set '' "$@" "$fifo" && shift &&
{ tail --follow=name -- "$file" | zcat >> "$fifo" &}
done &&
tail --follow=name -- "$@" /var/log/mail
) | less

Es bleibt noch die Frage zu klàren, wer wann die fifos wieder löscht,
wenn sie nicht mehr gebraucht werden.
Wer mir E-Mail schreiben will, stelle | When writing me e-mail, please
bitte vor meine E-Mail-Adresse meinen | precede my e-mail address with
Vor- und Nachnamen, etwa so: | my full name, like
Helmut Waitzmann , (Helmut Waitzmann)

Ähnliche fragen