Anzeige:
Ergebnis 1 bis 5 von 5

Thema: tail & sed

  1. #1
    Gast

    Post 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

  2. #2
    Gast

    Post

    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

  3. #3
    Manfred-B
    Gast

    Post

    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:
    Code:
    #!/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!

  4. #4
    Gast

    Red face

    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?


  5. #5
    Manfred-B
    Gast

    Post

    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
    Grüsse

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •