|
| 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
| |
|
|