shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] extrair dados de um log


From: Edjunior Machado
Subject: Re: [shell-script] extrair dados de um log
Date: Thu, 12 Jun 2008 01:17:17 -0300

Hey Carlos,

tentei meus 2 centavos aqui usando sed (pode ser?). Parece mais
questão de acertar a expressão regular mesmo :)

$ sed -n '/ldap/ { /IP=/ {s/\(.*\)ldap.*from \(IP=[^:]*\).*/\1
\2/p;n}; s/\(.*\)ldap.*cn=\([^,]*\).*/\1 user=\2/p }' ldap.log
Jun 10 11:03:48  IP=10.0.0.10
Jun 10 11:03:48  user=root
Jun 10 11:03:48  user=root
Jun 10 11:03:48  user=1480 - RICARDO PUXXX
Jun 10 11:03:48  user=1480 - RICARDO PUXXX
Jun 10 10:17:03  IP=10.0.0.80
Jun 10 10:17:03  user=884 - DIEGO MOXXX
Jun 10 10:17:03  user=884 - DIEGO MOXXX

É +- isso que vc precisa?

Sorte ae e hasta!


jr.

2008/6/10 Carlos A. Talhati <address@hidden>:
> Ola Eduardo,
>
> O que realmente quero é uma linha contendo a data, hora, IP e o nome do 
> usuario.
> os dados estão contidos em várias linhas do arquivo de log.
> é o log de um servidor de ldap. Este é um trecho de um log de uma conexão:
>
> Jun 10 11:03:48 ldap slapd[24695]: conn=1577 fd=19 ACCEPT from 
> IP=10.0.0.10:51419 (IP=0.0.0.0:389)
> Jun 10 11:03:48 ldap slapd[24695]: conn=1577 op=0 BIND 
> dn="cn=root,dc=iqsc,dc=usp,dc=br" method=128
> Jun 10 11:03:48 ldap slapd[24695]: conn=1577 op=0 BIND 
> dn="cn=root,dc=iqsc,dc=usp,dc=br" mech=SIMPLE ssf=0
> Jun 10 11:03:48 ldap slapd[24695]: conn=1577 op=0 RESULT tag=97 err=0 text=
> Jun 10 11:03:48 ldap slapd[24695]: conn=1577 op=1 SRCH 
> base="ou=usuarios,dc=iqsc,dc=usp,dc=br" scope=2 deref=0 filter="(uid=rick)"
> Jun 10 11:03:48 ldap slapd[24695]: conn=1577 op=1 SRCH attr=1.1
> Jun 10 11:03:48 ldap slapd[24695]: conn=1577 op=1 SEARCH RESULT tag=101 err=0 
> nentries=1 text=
> Jun 10 11:03:48 ldap slapd[24695]: conn=1577 op=2 BIND anonymous 
> mech=implicit ssf=0
> Jun 10 11:03:48 ldap slapd[24695]: conn=1577 op=2 BIND dn="cn=1480 - RICARDO 
> PUXXX,ou=usuarios,dc=iqsc,dc=usp,dc=br" method=128
> Jun 10 11:03:48 ldap slapd[24695]: conn=1577 op=2 BIND dn="cn=1480 - RICARDO 
> PUXXX,ou=usuarios,dc=iqsc,dc=usp,dc=br" mech=SIMPLE ssf=0
> Jun 10 11:03:48 ldap slapd[24695]: conn=1577 op=2 RESULT tag=97 err=0 text=
> Jun 10 11:03:48 ldap slapd[24695]: conn=1577 op=3 UNBIND
> Jun 10 11:03:48 ldap slapd[24695]: conn=1577 fd=19 closed
>
> Este é um trecho de um log de uma outra conexão:
>
> Jun 10 10:17:03 ldap slapd[24695]: conn=1560 fd=19 ACCEPT from 
> IP=10.0.0.80:50223 (IP=0.0.0.0:389)
> Jun 10 10:17:03 ldap slapd[24695]: conn=1560 op=0 BIND dn="cn=884 - DIEGO 
> MOXXX,ou=usuarios,dc=iqsc,dc=usp,dc=br" method=128
> Jun 10 10:17:03 ldap slapd[24695]: conn=1560 op=0 BIND dn="cn=884 - DIEGO 
> MOXXX,ou=usuarios,dc=iqsc,dc=usp,dc=br" mech=SIMPLE ssf=0
> Jun 10 10:17:03 ldap slapd[24695]: conn=1560 op=0 RESULT tag=97 err=0 text=
> Jun 10 10:17:03 ldap slapd[24695]: conn=1560 op=1 UNBIND
> Jun 10 10:17:03 ldap slapd[24695]: conn=1560 fd=19 closed
>
>
> Obrigado pela antenção
>
> Carlos
>
>
>
>
>
>
> Eduardo Otubo escreveu:
>> Olá Carlos,
>>
>> Quais dados você precisa? Seja mais específico.
>>
>> []'s
>>
>> 2008/6/3 Carlos A. Talhati <address@hidden>:
>>
>>> Ola
>>> preciso de uma ajuda para extrair dados de um log. a partir deste
>>> comando egrep -A1 'ACCEPT' /var/log/debug.log consigo o resultado abaixo:
>>>
>>> Jun 3 15:27:17 ldap slapd[24695]: conn=194 fd=19 ACCEPT from
>>> IP=10.0.0.80:64514 (IP=0.0.0.0:389)
>>> Jun 3 15:27:17 ldap slapd[24695]: conn=194 op=0 BIND dn="cn=148 - ANA
>>> PAULA GXXXX FXXXXX,ou=usuarios,dc=iqsc,dc=usp,dc=br" method=128
>>> --
>>> Jun 3 15:28:30 ldap slapd[24695]: conn=195 fd=19 ACCEPT from
>>> IP=10.0.0.10:49647 (IP=0.0.0.0:389)
>>> Jun 3 15:28:30 ldap slapd[24695]: conn=195 op=0 BIND
>>> dn="cn=root,dc=iqsc,dc=usp,dc=br" method=128
>>> --
>>> Jun 3 15:30:34 ldap slapd[24695]: conn=196 fd=19 ACCEPT from
>>> IP=10.0.0.10:50685 (IP=0.0.0.0:389)
>>> Jun 3 15:30:34 ldap slapd[24695]: conn=196 op=0 BIND
>>> dn="cn=root,dc=iqsc,dc=usp,dc=br" method=128
>>> --
>>> Jun 3 15:31:34 ldap slapd[24695]: conn=197 fd=19 ACCEPT from
>>> IP=10.0.0.10:51467 (IP=0.0.0.0:389)
>>> Jun 3 15:31:34 ldap slapd[24695]: conn=197 op=0 BIND
>>> dn="cn=root,dc=iqsc,dc=usp,dc=br" method=128
>>> --
>>> Jun 3 15:32:33 ldap slapd[24695]: conn=198 fd=19 ACCEPT from
>>> IP=10.0.0.80:59747 (IP=0.0.0.0:389)
>>> Jun 3 15:32:33 ldap slapd[24695]: conn=198 op=0 BIND dn="cn=384 -
>>> HIDETAKE IMXXXO,ou=usuarios,dc=iqsc,dc=usp,dc=br" method=128
>>> --
>>> Jun 3 15:34:16 ldap slapd[24695]: conn=199 fd=19 ACCEPT from
>>> IP=10.0.0.10:53048 (IP=0.0.0.0:389)
>>> Jun 3 15:34:16 ldap slapd[24695]: conn=199 op=0 BIND
>>> dn="cn=root,dc=iqsc,dc=usp,dc=br" method=128
>>>
>>> mas o que realmente quero é uma linha contendo a data, hora, IP e o nome
>>> do usuario. Notem que tem linhas sem o nome do usuario, essas linha
>>> deveriam ser eliminadas. quase consegui fazendo assim : egrep -A1
>>> 'ACCEPT' /var/log/debug.log | egrep -v '(dn=\"cn=root|ACCEPT)' | awk
>>> '{print $2" "$1"-"$3"-" $11}'
>>> mas como o nome do usuario tem espaço em branco não estou conseguindo
>>> pegar o nome inteiro, mesmo com substr. sai assim
>>> 3 Jun-15:27:17-ANA
>>> ----
>>> ----
>>> ----
>>> ----
>>> 3 Jun-15:32:33-HIDETAKE
>>>
>>> sou novato em shell script e estou apanhando muito
>>>
>>> agradeço pela ajuda,
>>>
>>> Carlos
>>>
>>>
>>>
>>
>>
>>
>>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como 
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]