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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 218770
Url: https://administrator.de/contentid/218770
Ausgedruckt am: 20.11.2024 um 17:11 Uhr
2 Kommentare
Neuester Kommentar
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;