Como preencher e visualizar apenas uma substring da tabela ip Logs com tailf e sed?

0

uma linha do log do iptable é:

Jan  1 21:41:19 x kernel: [838760.885218] IPTables-Dropped: IN=eth0 OUT= MAC=x:x:x:x:x:x:x:x:x:x:x:x:x:x:x:x:00:x:00:00:x:00:x:x:x:x SRC=x.x.x.x DST=x.x.x.x LEN=70 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=37739 DPT=53 LEN=50 

e para assistir ao vivo, eu usei:

tailf /var/log/kern.log

mas, como você pode ver, contém muitas informações. então eu tentei ver apenas o campo de origem e destino dessa linha.

Mudei meu comando para algo assim:

tailf /var/log/kern.log | sed -n -e 's/^.*DST: //p'

mas ainda nada, existe alguma maneira eu posso mudar isso para me mostrar apenas endereços IP de origem e destino? ou devo ir para uma solução mais complicada do que um comando.

    
por comey macdonald 05.01.2018 / 11:19

3 respostas

1

[...] tried to view only source and destination field of that line.

Eu usaria grep . Algo parecido com isto:

echo "Jan  1 21:41:19 x kernel: [838760.885218] IPTables-Dropped: IN=eth0 OUT= MAC=x:x:x:x:x:x:x:x:x:x:x:x:x:x:x:x:00:x:00:00:x:00:x:x:x:x SRC=192.168.1.10 DST=192.168.1.20 LEN=70 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=37739 DPT=53 LEN=50" | egrep -o 'SRC=[0-9.]* DST=[0-9.]*'
SRC=192.168.1.10 DST=192.168.1.20

No seu caso, seria:

tailf /var/log/kern.log | egrep -o 'SRC=[0-9.]* DST=[0-9.]*'
    
por 05.01.2018 / 14:14
0

Descubra o máximo de colunas exsists abaixo do comando

awk '{print NF}' /var/log/kern.log/sort -rn | head -1 e atribuiu esse valor no valor máximo de loop

A partir do dado número de colunas, a entrada máxima é 22, então atribuímos o valor em 22 em loop

for ((i=1;i<=22;i++)); do tail -f /var/log/kern.log |awk -v i="$i" '$i ~ "SRC" {print $i}';tail -f /var/log/kern.log | awk -v i="$i" '$i ~ "DST" {print $i}'  ; done

output
SRC=x.x.x.x
DST=x.x.x.x
    
por 05.01.2018 / 15:16
0

O que você esperava? A linha não contém DST: . Use

sed -n 's/.*\(SRC=.*DST=[^ ]\).*//p'

para remover tudo parte da correspondência dentro do \(\)

    
por 05.01.2018 / 16:57