Archiv verlassen und diese Seite im Standarddesign anzeigen : tail & sed
hi,
ich habe folgendes problem:
aus der snort.alert sollen daten auf /dev/tty11 geschoben werden dabei sollen
alle [**] und 192.168. herausgelöscht werden
dazu nehme ich folgenden befehl
tail -f /usr/snort/logs/snort.alert|sed -f /usr/snort/filter_snort|/usr/local/sbin/colorlogs.pl >> dev/tty11
in der filter_snort steht folgendes:
s/\[\*\*\]//g
s/192\.168\.//g
die daten werden auch korrekt ausgegeben, aber erst wenn der tail prozess gekillt wird und dann alle auf einen schlag
ich habe das gefühl das sed alle eingaben abfängt das geforderte herausschneidet und nicht weitergibt
wer kann helfen
cu thx
Hi,
ich weiß nicht, ob´s Dir hilft, aber der tail -f zeigt doch die letzten 10 Zeilen an und bleibt stehen. Macht er bei mir auch, wenn ich die Ausgabe umleite.
Warum benutzt Du denn den tail ? Geht less oder cat nicht?
MfG,
Werner
Manfred-B
06-12-2000, 23:23
Hi
In der tat liegt das an sed - der liest solange von stdin bis der kanal geschlossen wird obwohl in den man und infos was anderes steht.
Also wenn du die ganze Zeile in der der string vorkommt entberen willst hilft Dir grep.
falls nicht dieses skirpt:
#!/bin/bash
# Liest stdin und löscht folgende strings im datenstrom
del1='192.168' # hier konfig
del2='\[**\]'
while true
do
read i
i=${i//$del1/}
i=${i//$del2/}
echo $i >/dev/pts/1
done
Einfach anstelle von sed in die Pipe!
wie man sieht hab ich es mit der "heißen Nadel gestrickt"
Grüsse
Der Weg war das Ziel!
Also ich habe folgende Zeile eingefügt...
tail -f /usr/snort/logs/snort.alert|/usr/network/back_filter /usr/snort/filter_snort|/usr/local/sbin/colorlogs.pl >> /dev/tty11&
und in back_filter deinen Code.
Sobald ich aber nun sagt er
/dev/pts/1 : permission denied
sobald ich dann tail kille flutet er mir pts/1 mit dem Befehl permission denied
Was nun?
Manfred-B
07-12-2000, 21:52
Hallo!
tail -f /usr/snort/logs/snort.alert | /usr/network/back_filter &
reicht völlig aus wenn Du das skript anpasst:
anstatt
echo $i >/dev/pts/1
solltest Du
echo $i >/dev/tty11
schreiben
Ich hab es hier mit xterm getestet und der war eben mit /dev/pts/1 verbunden
Achja, falls Du Strings nicht nur löschen sondern ersetzen willst -
ersatz1='ersatzteil'
....
i=${i//$del1/$ersatz1}
Sterne müssen nicht mit Backslash gequotet "\*" werden aber die eckigen Klammern
man bash
denn fertige Arbeit ist teuer http://www.linuxforen.de/ubb/wink.gif
Grüsse
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.