CykelSmeden fra Aalborg wrote:
> er der en script-nørd som kan hjælpem mig med at få en unik liste fra
> nogle logs?
Hmmm "script-nørd". Det må vist være mig
> cat error_log|grep system32 > nimda.log
>
> giver en fin fil med alle nimdaangreb. Der er bare mange fra samme
> ipadresser, så jeg vil gerne have en liste med kun 1 entry for hver IP.
Så skal du først have pillet ip-adressen ud af linien som du derefter
sorterer på med 'sort -u' så duplikater kun kommer ud een gang:
grep system32 < /var/log/httpd/error_log \
| while read line
do set -- $line
echo $8
done \
| sort -u
'set -- $line' sætter de positionelle paramtetre til de whitespace separe-
rede felter i $line. Ip-adressen ligger i det ottende felt og skrives ud
med 'echo $8' som pipes videre til vores sort kommando.
Når du kører programmet får du et ekstra ']' i halen på hver ip-adresse.
Det kan du fjerne ved at bruge 'echo ${8%]}' i stedet for blot 'echo $8'.
Nogen vil måske anbefale 'cut' i stedet for tricket med while-loopet, men
cut opfatter to skilletegn i træk (f.eks ' ' - altså to blanke) som et
ekstra felt).
> det er iøvrigt rar læsning (når ens server er linux)
hehe
-Claus