Fala Alexandre!

Primeira coisa é que tu está confundindo linha com coluna pois nesse log 
não tem colunas definidas, apenas linhas.
para fazer as filtragens que vc quer procedi da seguinte maneira:

l...@lbw-laptop:~$ cat iptables-log
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
l...@lbw-laptop:~$
l...@lbw-laptop:~$ cat iptables-log |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=
DST=10.1.1.254 LEN=131 TOS=0x00 PREC=0x00 TTL=106 ID=5960 PROTO=UDP
SPT=34422 DPT=61673 LEN=111

em seguida basta você utilizar o sed ou o awk para formatar a saida da 
forma que vc quer póis não entendi exatamente o que vc quer fazer

No comando que eu fiz uso '' para proteger a expressão que quero casar, 
o ^ significa inicio de linha, o que está entre [] representa as 
possiveis variação para uma casa, o que está entre {} representa o 
numero de repetições da casa anterior.
As letras [JFMASOND] representam as letras em maiúculo de todas as 
iniciais dos meses.

Espero que tenha ajudado.

Alexandre Gorges escreveu:
>
> Boa tarde,
>
> Estou tentando montar um log do iptables e encontrei um problema.
> Algumas linhas do iptables possuem a coluna MAC= e algumas não.
> Montei um tail com awk para listar, mas estou com um problema para 
> filtrar a
> coluna MAC=. Eu não quero imprimir essa coluna no relatório.
>
> O log original sai assim:
>
> 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
>
> O tail que fiz ficou:
>
> tail -5 t|grep kernel|grep RECUSOU|awk '{$9="";print "<b>Hora:" $3 "
> A&ccedil;&atilde;o: </b>" $6 " " $10 " " $11;}'
>
> Dessa forma o resultado foi
>
> <b>Hora:15:27:15 A&ccedil;&atilde;o: </b>INT-RECUSOU-tcp DST=189.72.115.23
> LEN=48
> <b>Hora:15:27:37 A&ccedil;&atilde;o: </b>INT-RECUSOU-tcp DST=189.72.115.24
> LEN=48
> <b>Hora:15:27:46 A&ccedil;&atilde;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=.
>
> Do log original, o que eu preciso seria as colunas da hora, RECUSOU, SRC,
> DST, PROTO, SPT, DPT
>
> []'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
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 




------------------------------------

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

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [email protected]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a