comportamento estranho do comando strings [duplicate]

1

Estou tentando capturar o tráfego do mysql e passar o tráfego para o comando strings da seguinte forma:

tcpdump -i any -s 0 -l -w - dst port 3306 | strings

Isso está funcionando como esperado e imprimindo todas as consultas do mysql como

select * from mytables
show databases

Mas quando eu estou tentando redirecionar a saída para um arquivo, ele não está imprimindo a saída para /tmp/out file:

tcpdump -i any -s 0 -l -w - dst port 3306 | strings > /tmp/out

Alguém pode me explicar o comportamento do comando acima e por que não está redirecionando a saída para o arquivo.

    
por pradeepchhetri 25.07.2013 / 10:51

1 resposta

2

Eu tenho a solução:

Na verdade, o comando strings está em buffer. Eu desabilitei o buffer usando

stdbuf -i0 -o0 -e0 command

Então, depois de alterar o comando inteiro para o seguinte, a saída começou a ir para o arquivo / tmp / final.

tcpdump -i any -s 0 -l -w - dst port 3306 | stdbuf -i0 -o0 -e0 strings > /tmp/final 

Referências

por 25.07.2013 / 11:06