Ich will aus meiner /var/log/messsages alle KIDDY IPs aus lesen die nach dem PORT 27374 suchen und die in eine neue
datei speichern
May 30 19:21:04 linux kernel: SuSE-FW-DROP-DEFAULTIN=ippp0 OUT= MAC= SRC=24.5.62.205 DST=217.2.73.61 LEN=48 TOS=0x00 PREC=0x00 TTL=105 ID=59648 DF PROTO=TCP SPT=1806 DPT=27374 WINDOW=8192 RES=0x00 SYN URGP=0 OPT (020405B401010402)
so sieht der output aus ich haber jetzt mit
grep DPT=27374 /var/log/messages >> file1.txt
nur solche outputs wie oben erhalten wie kann ich jetzt auch noch , wirklich nur die Quell-IPs der kiddys in eine file speichern ? ich habe es mit cut probiert doch damit hat es nicht so hingehaun ?!?!
SUB7
Re: SUB7
sed ist Dein Freund:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
sed '/DPT=27374/s/.* SRC=\([^ ]*\) .*/\1/' /var/log/messages >>file1.txt
</font><hr></pre></blockquote>
Der Teil in den ersten beiden Slashes ist die Adresse, also gelten alle Zeilen mit Destination Port 27374. "s" steht für substitute. Gesucht wird die ganze Zeile, wobei der Part nach SRC= in ein Register übernommen wird. Zu ersetzen ist die ganze Zeile dann durch den Teil im ersten Register. Voilà - die IP-Adresse.
OK so?
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
sed '/DPT=27374/s/.* SRC=\([^ ]*\) .*/\1/' /var/log/messages >>file1.txt
</font><hr></pre></blockquote>
Der Teil in den ersten beiden Slashes ist die Adresse, also gelten alle Zeilen mit Destination Port 27374. "s" steht für substitute. Gesucht wird die ganze Zeile, wobei der Part nach SRC= in ein Register übernommen wird. Zu ersetzen ist die ganze Zeile dann durch den Teil im ersten Register. Voilà - die IP-Adresse.
OK so?
Re: SUB7
Sch... eibenkleister.
Das kommt davon, wenn man nicht anner Linux-Kiste sitzt, wie es sich gehört! <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">
Korrektur:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
sed -n '/DPT=27374/s/.* SRC=\([^ ]*\) .*/\1/p' /var/log/messages >>file1.txt
</font><hr></pre></blockquote>
Ich hatte ganz verpriemt, dass der sed per Default immer <i>alle</i> Zeilen ausgibt. Das wird mittels Option -n unterdrückt, und das "p" am Ende des substitute-Kommandos sorgt für eine Ausgabe, wenn sed tatsächlich was zu ersetzen hatte.
Diesmal habe ich es mit Deiner Beispielausgabe getestet, und es funzt. Das einfachste ist, wenn Du die Zeile mittels Copy'n'Paste übernimmst, dann ist die Gefahr für Tappfelher nicht so gross.
Besser jetzt?
Das kommt davon, wenn man nicht anner Linux-Kiste sitzt, wie es sich gehört! <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">
Korrektur:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
sed -n '/DPT=27374/s/.* SRC=\([^ ]*\) .*/\1/p' /var/log/messages >>file1.txt
</font><hr></pre></blockquote>
Ich hatte ganz verpriemt, dass der sed per Default immer <i>alle</i> Zeilen ausgibt. Das wird mittels Option -n unterdrückt, und das "p" am Ende des substitute-Kommandos sorgt für eine Ausgabe, wenn sed tatsächlich was zu ersetzen hatte.
Diesmal habe ich es mit Deiner Beispielausgabe getestet, und es funzt. Das einfachste ist, wenn Du die Zeile mittels Copy'n'Paste übernimmst, dann ist die Gefahr für Tappfelher nicht so gross.
Besser jetzt?