Lawrence e Julio, postei no site. Veja se agora ficou mais claro. http://pastebin.com/3vADEG8q
Jimmy, muitíssimo obrigado. Matou o meu problema do mac e já deu a solução para os campos tcp e udp. Muito obrigado. []'s Alexandre Gorges http://www.google.com.br/profiles/algorges MSN/Gtalk/iCHAT/Skype/Buzz: [email protected] ICQ: 2031408 > From: Lawrence Waclawiak <[email protected]> > Reply-To: Lista Shell Script <[email protected]> > Date: Tue, 27 Apr 2010 18:00:42 -0300 > To: Lista Shell Script <[email protected]> > Subject: Re: [Bulk] [shell-script] Filtrar MAC do log do iptables > > Então Alexandre, pode ser que estejamos sofrendo com problemas de > formatação da lista de e-mails, pois eu tenho absoluta certeza que esse > comando funciona, também utilizo Redhat el5.4, só se vc estiver > utilizando alguma versão muita antiga que não tenha suporte para alguns > dos comandos que eu utilizei. > Como vc viu eu colei o meu teste, ele realmente foi executado. > > Mas o meu comando não filtra o MAC, ele seleciona apenas as ocorrências > que vc pediu e dessa forma conseguente mente filtra qualquer outra > coisa, inclusive o MAC=. > > Se vc tiver certeza que a únicas linhas que vc deseja filtrar são essas > que começam com MAC= ai fica bem mais simples. > > cat t|egrep -v '^MAC=' > Se não funcionar significa que a linha não começa com "MAC=" dai vc pode > tentar descobrir qual é o verdadeira caracter que tem no inicio da linha > ou mandar ele rejeitar qualquer linha que contenha "MAC=" da seguinte forma: > cat t|egrep -v 'MAC=' > > Se não funfar chama o padre pois o kapeta tá no teu pc heheh > > Agora quanto ao seu comando ele está com erros de lógica,veja: > ######################################################################## > tail -5 t|grep kernel|grep RECUSOU|awk '{$9="";print "<b>Hora:" $3 > "Ação: </b>" $6 " " $10 " " $11;}' > > Dessa forma o resultado foi > > <b>Hora:15:27:15 Ação: </b>INT-RECUSOU-tcp > DST=189.72.115.23 LEN=48 > <b>Hora:15:27:37 Ação: </b>INT-RECUSOU-tcp > DST=189.72.115.24 LEN=48 > <b>Hora:15:27:46 Ação: </b>SERV-RECUSOU-udp > SRC=61.44.213.54 DST=10.1.1.254 > > Reparem nas primeiras linhas. Listou apenas DST e não as colunas SRC e DST. > Eu estou querendo eliminar a coluna do MAC inteira, tratando como se nunca > tivesse existido a coluna MAC=. > > ######################################################################### > Esse primeiro grep que vc fez já matou qualquer linha que não contenha a > palavra "kernel" o segundo pega o que sobrou e mata qualquer uma que não > tenha "RECUSOU" dai passa a saida para o awk formatar, ou seja, você tá > matando as linhas antes que elas possam chegar ao seu awk, por isso que > as SRC e DST não saem, pode fazer o teste: > > tail -5 t|grep kernel|grep RECUSOU > > Você vai ver que já não tem todas as linhas que vc quer. > > Outra questão e que mesmo que vc passe essas linhas para o awk não vai > ficar como você quer pois cada tipo de linha tem uma estrutura diferente > pelo que percebi e dessa forma as referencias de $1 $10 etc não vaão ser > sempre as mesmas. > > Escrevendo isso passei a ter certeza absoluta que nosso problema é a > formatação da lista de e-mail. > > utilize o site http://pastebin.com para colar toda a parte que é > referente a comandos assim poderemos ajudar com maior facilidade. > Abraços > > > Alexandre Gorges escreveu: >> >> Fala Lawrence. >> >> Eu chamo esse tail por html. Então fica listando no navegador o log. >> Como acontece de aparecer MAC em alguns logs, eu não consigo pegar por >> awk, >> os campos depois do MAC, corretamente. >> Então estou tentando retirar o MAC=..... Que pode aparecer em determinadas >> linhas para que assim, via awk eu consiga montar as informações. >> >> Testei o seu comando aqui no meu Redhat e aparentemente não filtrou o mac. >> >> cat t| egrep -e '^SRC=' -e '^DST=' -e '^SPT=' -e '^DTP=' -e >> '^[JFMASOND][a-z]{2} [0-9]{2} ' -e '-RECUSOU-' -e '^ID' -e ' PROTO=' >> Apr 27 15:27:15 server kernel: INT-RECUSOU-tcp IN=eth1 OUT=eth0 >> SRC=172.16.19.10 DST=189.72.115.23 LEN=48 TOS=0x00 PREC=0x00 TTL=127 >> ID=42626 DF PROTO=TCP SPT=3855 DPT=445 WINDOW=65535 RES=0x00 SYN URGP=0 >> Apr 27 15:27:37 server kernel: INT-RECUSOU-tcp IN=eth1 OUT=eth0 >> SRC=172.16.19.10 DST=189.72.115.24 LEN=48 TOS=0x00 PREC=0x00 TTL=127 >> ID=42641 DF PROTO=TCP SPT=3857 DPT=445 WINDOW=65535 RES=0x00 SYN URGP=0 >> Apr 27 15:27:46 server kernel: SERV-RECUSOU-udp IN=eth0 OUT= >> MAC=00:01:02:77:39:e5:00:18:d1:e1:6c:69:08:00 SRC=61.44.213.54 >> DST=10.1.1.254 LEN=131 TOS=0x00 PREC=0x00 TTL=106 ID=5960 PROTO=UDP >> SPT=34422 DPT=61673 LEN=111 >> >> A ultima linha ainda constou o MAC=.... >> >> Com um awk que eu montei, até consigo filtrar o MAC=..., mas o que >> vier após >> fica errado. >> >> Veja >> >> tail -5 t|grep kernel|grep RECUSOU|awk '{$9="";print "<b>Hora:" $3 " >> Ação: </b>" $6 " " $10 " " $11;}' >> <b>Hora:15:27:15 Ação: </b>INT-RECUSOU-tcp DST=189.72.115.23 >> LEN=48 >> <b>Hora:15:27:37 Ação: </b>INT-RECUSOU-tcp DST=189.72.115.24 >> LEN=48 >> <b>Hora:15:27:46 Ação: </b>SERV-RECUSOU-udp SRC=61.44.213.54 >> DST=10.1.1.254 >> >> As duas primeiras linhas, listaram DST=.... E LEN=.... Essas duas >> linhas não >> tem MAC=.... Aparecendo. Na ultima linha o SRC=... E DST=.... Apareceram >> corretamente. >> >> []'s >> Alexandre Gorges >> http://www.google.com.br/profiles/algorges >> <http://www.google.com.br/profiles/algorges> >> MSN/Gtalk/iCHAT/Skype/Buzz: [email protected] >> <mailto:algorges%40gmail.com> >> ICQ: 2031408 >> >>> From: Lawrence Waclawiak <[email protected] >> <mailto:lawrencebbw%40yahoo.com.br>> >>> Reply-To: Lista Shell Script <[email protected] >> <mailto:shell-script%40yahoogrupos.com.br>> >>> Date: Tue, 27 Apr 2010 16:57:59 -0300 >>> To: Lista Shell Script <[email protected] >> <mailto:shell-script%40yahoogrupos.com.br>> >>> Subject: Re: [Bulk] [shell-script] Filtrar MAC do log do iptables >>> >>> '^ID' -e ' PROTO=' >> >> > > > > > ------------------------------------ > > --------------------------------------------------------------------- > 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: [email protected] > --------------------------------------------------------------------- > 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 > >
