Tail -f mit grep filtern und in eine Datei umlenken klappt nicht
Hallo zusammen,
ich muss jetzt einfach mal Fragen, ich denke ich habe irgendwo ein Denkfehler drin:
System: Raspberry Pi - Wheezy (Debian)
Ich will eine Datei über tail -f aktuell auslesen. Das ganze dann mit grep filtern und das Ergebnis vom grep in eine Datei speichern.
Der Befehl dazu:
Das klappt nicht.
bringt mir genau das gewünschte Ergebnis auf den Bildschirm. Ich hätte es nur gerne in einer Datei.
So geht es auch nicht:
Was mache ich falsch?! Es sieht so aus, als kann man das Ergebnis von grep weder weiterleiten nur via Pipe weiterreichen. Das kann doch nicht sein?
Besten Dank!
Grüße,
Sebastian
ich muss jetzt einfach mal Fragen, ich denke ich habe irgendwo ein Denkfehler drin:
System: Raspberry Pi - Wheezy (Debian)
Ich will eine Datei über tail -f aktuell auslesen. Das ganze dann mit grep filtern und das Ergebnis vom grep in eine Datei speichern.
Der Befehl dazu:
tail -f /root/src/doc/aprx/log/aprx-rf.log | grep XYZ >> /var/www/aprs/stationen.txt
Das klappt nicht.
tail -f /root/src/doc/aprx/log/aprx-rf.log | grep XYZ
So geht es auch nicht:
tail -f /root/src/doc/aprx/log/aprx-rf.log | grep XYZ | tee /var/www/aprs/stationen.txt
Was mache ich falsch?! Es sieht so aus, als kann man das Ergebnis von grep weder weiterleiten nur via Pipe weiterreichen. Das kann doch nicht sein?
Besten Dank!
Grüße,
Sebastian
Please also mark the comments that contributed to the solution of the article
Content-Key: 218770
Url: https://administrator.de/contentid/218770
Printed on: April 29, 2024 at 06:04 o'clock
2 Comments
Latest comment
Hallo Sebastian,
tail mit dem Parameter -f wartet immer auf neu hinzukommende Zeilen in der Log-Datei, die Ausgabe erfolgt aber normalerweise erst bei Beendigung des Befehls, deshalb wartet der Prompt unendlich
Alternativ könntest du es regelmäßig z.B. alle 10 Sekunden in einer Schleife so machen:
etwas effizienter so (erstellt 'stationen.txt' nur bei Änderungen der Logdatei neu):
Grüße Uwe
tail mit dem Parameter -f wartet immer auf neu hinzukommende Zeilen in der Log-Datei, die Ausgabe erfolgt aber normalerweise erst bei Beendigung des Befehls, deshalb wartet der Prompt unendlich
Alternativ könntest du es regelmäßig z.B. alle 10 Sekunden in einer Schleife so machen:
while [ 1 ]; do cat /root/src/doc/aprx/log/aprx-rf.log | grep XYZ > /var/www/aprs/stationen.txt ; sleep 10; done;
datemod=0;while [ 1 ]; do d=$(stat -c %Y /root/src/doc/aprx/log/aprx-rf.log); if [ $datemod \< $d ]; then cat /root/src/doc/aprx/log/aprx-rf.log | grep "XYZ" >/var/www/aprs/stationen.txt;datemod=$d;fi; sleep 10; done;