Moin,
Ich versuche ein Firewalllog zu zerlegen. Das Logfile sieht so aus:
Code
Apr 11 00:00:00 caefr0p247 kernel: [FW_O] IN= OUT=eth0 SRC=44.47.105.108 DST=44.47.100.107 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=2652 DF PROTO=TCP SPT=47239 DPT=6881 WINDOW=5840 RES=0x00 SYN URGP=0 UID=132489
Apr 11 00:00:01 caefr0p247 kernel: [FW_O] IN= OUT=eth0 SRC=44.47.105.108 DST=44.47.100.107 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=18798 DF PROTO=TCP SPT=60402 DPT=6881 WINDOW=5840 RES=0x00 SYN URGP=0 UID=132489
Im grunde funktioniert es auch schon so wie ich das will mit:
Code
sed 's/.*DST=\([0-9.]*\).*PROTO=\([A-Z]*\).*DPT=\([0-9.]*\).*UID=\([0-9.]*\).*/\1;\2;\3;\4/g' FW.log
Ergebnis:
44.47.105.92;UDP;8648;101
44.47.105.94;UDP;8648;101
44.47.108.8;UDP;8648;101
44.47.100.107;TCP;6881;132979
44.47.103.11;TCP;58542;132979
44.47.100.107;TCP;6881;132979
44.47.100.107;TCP;6881;132979
44.47.100.107;TCP;6881;132979
Alles anzeigen
Soweit so hübsch aber es gibt Zeilen da fehlt z.B. das Feld UID und dann funktioniert meine Zeile nicht mehr.
Ausgegeben wird dann die gesamte Zeile. Ich aber würde mir wünschen, dass halt dann UID einfach leer ist.
Beispiel Zeile:
Code
Apr 11 15:54:27 caefr0p247 kernel: [FW_O] IN= OUT=eth0 SRC=44.47.105.108 DST=10.122.80.198 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=44862 DF PROTO=TCP SPT=791 DPT=4045 WINDOW=5840 RES=0x00 SYN URGP=0
Jemand ne idee?
Gruß Lunepi