Acho que o que eu quero fazer é muito fácil, mas não consigo encontrar uma maneira de fazer isso:
Se eu colocar este comando:
[root@:Active] tmp # tcpdump -i any -s 65535 host 192.168.1.110 and port 1645 or port 1813 -v
-X | grep -o 'Start'
Start
Start
...
...
...
Start
Start
10047 packets captured
10046 packets received by filter
0 packets dropped by kernel
Eu tenho muita coincidência inicial, mas eu só quero contar quantos "Start" está realmente mostrando no shell (enquanto o comando tcpdump está sendo executado).
Eu tento adicionar wc -l:
[root@:Active] tmp # tcpdump -i any -s 65535 host 192.168.1.110 and port 1645 or port 1813 -v
-X | grep -o 'Start' | wc -l
tcpdump: listening on any, link-type EN10MB (Ethernet), capture size 65535 bytes
Mas ainda assim nada, não quero salvar um arquivo com a saída do tcpdump e depois contar, basta contar as linhas de saída que já estão mostrando, em tempo real.
Também tento alguma combinação com xargs, mas ainda falho na contagem. Eu acho que "wc -l" "grep -c" e comandos similares precisam de um arquivo para apontar e contar, mas eu não sei onde na memória a saída do tcpdump é o armazenamento.
Se você tiver alguma idéia inteligente, vai gostar: D.
Eu ainda acho que estou perdendo algumas coisas bobas, as linhas já estão mostrando no shell, eu só preciso contar quantas são, sem salvar nenhum arquivo ou parar o tcpdump.
Enquanto isso, vou continuar tentando, um amigo me disse que, com a linguagem AWK, posso fazer isso.
Saudações a todos.