/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Parsing af logfil
Fra : Lars Christensen


Dato : 30-08-03 11:38

Hejsa gruppe

Jeg har en stribe logfiler, som jeg skal have parset lidt fra. Det drejer
sig om nogle syslog-filer, som en del netværkudstyr logger til.

Eksempel på output:

Aug 30 12:31:20 router.domain.com 149011: 149008: Aug 30 10:31:19: %SEC-
6-IPACCESSLOGDP: list 101 denied icmp 172.16.50.85 (FastEthernet0/4
00e0.9898.8288) -> 172.16.68.199 (8/0), 1 packet

Jeg skal have pillet source-IPadressen (172.16.50.85) ud og smidt over i
en tekstfil. resten af linien er jeg sådan set ligeglad med... Men det må
kun være linier, hvor teksten "%SEC-6-IPACCESSLOGDP: list 101 denied"
indgår...

Nogen der har en ide? Jeg gætter selv på, at der skal laves noget sed
eller awk til dette, men jeg er ikke stiv i dette...

Og skulle det så lige være muligt, at få sorteret outputtet i rækkefølge
samt at hver entry kun optræde én gang, så vil det være perfekt...


mvh
Lars Christensen

PS: Det er filer på en 30-40 mb...



 
 
Adam Sjøgren (30-08-2003)
Kommentar
Fra : Adam Sjøgren


Dato : 30-08-03 11:47

On 30 Aug 2003 10:38:27 GMT, Lars wrote:

> Aug 30 12:31:20 router.domain.com 149011: 149008: Aug 30 10:31:19:
> %SEC- 6-IPACCESSLOGDP: list 101 denied icmp 172.16.50.85
> (FastEthernet0/4 00e0.9898.8288) -> 172.16.68.199 (8/0), 1 packet

> Jeg skal have pillet source-IPadressen (172.16.50.85) ud og smidt
> over i en tekstfil. resten af linien er jeg sådan set ligeglad
> med... Men det må kun være linier, hvor teksten
> "%SEC-6-IPACCESSLOGDP: list 101 denied" indgår...

> Nogen der har en ide? Jeg gætter selv på, at der skal laves noget
> sed eller awk til dette, men jeg er ikke stiv i dette...

Hvis du ikke orker at lære sed og/eller awk, kan en kombination af
grep, cut og sort sikkert bruges?

Utestet forslag til hurtigt udgangspunkt:

grep '%SEC-6-IPACCESSLOGDP: list 101 denied' indfil.txt | cut -d" " -f 15 | sort -u > udfil.txt

Det kan være smart at tilføje et led af pipe'n af gangen, og se at det
giver det du gerne vil.

Se man grep, man cut, man sort.


Mvh.

--
"I happen to be a Swede myself" Adam Sjøgren
asjo@koldfront.dk

Michael Knudsen (30-08-2003)
Kommentar
Fra : Michael Knudsen


Dato : 30-08-03 12:55



Lars Christensen (30-08-2003)
Kommentar
Fra : Lars Christensen


Dato : 30-08-03 16:49


> Definér lige `rækkefølge'. Umiddelbart vil mit bud være:
>
> $ awk '/%SEC-6-IPACCESSLOGDP: list 101 denied/ { print $15 }' logfil |
> sort | uniq
>
> Jeg bruger denne kombination af awk, sort og uniq (efterfulgt af `| wc
> -l´ til at finde antal forskellige IP-numre i mine apache-logs.

Jeps, lige præcis den der er lige det jeg skal bruge

mange tak og god weekend... Nu skal der jagtes virusbefængte fol´k...

mvh
Lars Christensen

PS: Jo, jeg skal have sat mig ind i awk og sed... Men denne her hastede
lige, og så er der jo masser af folk, der kan finde ud af den slags

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste