timebandit said:
> H�ller p� att f�rs�ka ta ut alla IP's fr��n auth.log och har lyckats
> g�ra det med raden "Failed password for illegal" men inte med den andra
> raden d� dem �r s� lika i b�rjan :(
> �r det n�gon som vet hur man kan ta ut allt efter ordet "from" till en
> fil? Detta skulle underl�tta f�r mig r�tt mycket...
>
>
> Feb  4 20:18:03 DZN sshd[8877]: Failed password for root from
> 200.53.114.42 port 4134 ssh2
> Feb  4 20:18:08 DZN sshd[8881]: Failed password for illegal user test from
> 200.53.114.42 port 4231 ssh2

De verktyg jag brukar anv�nda f�r detta �r sed, awk, cut, och ev. perl.

Eftersom det �r olika position p� ip-adressen beroende p� om anv�ndaren
existerar eller inte ("illegal user" vs "root") s� blir det lite mer
komplicerat, annars kunde du anv�nt

grep 'Failed password' /var/log/auth.log | awk '{ print $10 }'

Eller motsvarande med 'cut', | cut -f 12 -d ' '

Ist�llet skulle jag anv�nda sed, med (s)ubstitutefunktionen.

grep ... | sed 's/.* from //'

tar d� enkelt bort allting i b�rjan p� raden (ers�tt det som matchar med
tom str�ng). Sortera detta sedan med | sort.
F�r att f� ut enbart ip-adressen s� blir matchningen lite mer komplex;

grep ... | sed 's/.* from \([^ ]*\) .*/\1/'

h�r matchas adressen som en str�ng utan mellanslag, och "sparas" med hj�lp
av paranteserna. Hela raden byts sedan ut mot detta machade uttryck med
hj�lp av bak�treferensen \1, dvs adressen du vill ha ut. Sortera med |
sort som tidigare, och eventuellt | uniq  om du vill ha bort dubletter.
Allts�:


grep 'Failed password' /var/log/auth.log | sed 's/.* from \([^ ]*\)
.*/\1/' | sort | uniq  > /tmp/adresser.txt


Vill du sedan f� fram namnen p� adresserna i fr�ga:

for x in `cat /tmp/adresser.txt` ; do host $x | awk '{print $5}' ; done


Mvh,
 Stefan

Karlstads unixf�rening     | KUF
http://www.karlstadunix.nu | [EMAIL PROTECTED]





-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Till