Em um host remoto, eu corro este comando:
tcpdump -i any -v "tcp or udp" > /tmp/tcpdump.log
Portanto, se houver tráfego TCP / UDP nesse host, a saída tcpdump será salva em /tmp/tcpdump.log
No meu host perdido, eu tenho este script BASH:
ssh $remote_host "cp /tmp/tcpdump.log /tmp/tcpdump.log.bak"
echo foo | nc $remote_host $port <== send some traffic to remote host
ssh $remote_host "diff /tmp/tcpdump.log /tmp/tcpdump.log.bak > /tmp/tcpdump.diff"
quando executo este script uma vez, funciona bem. Mas quando eu o coloco em um loop, ele pode facilmente bagunçar, o tcpdump.diff não captura uma saída completa do tcpdump ou tem mais de uma rodada de saída.
Parece-me que os itens a seguir estão fora de sincronia:
Existe alguma solução simples para colocá-los na ordem correta? Preciso criar algum arquivo temporário no host remoto como um semáforo?
Tags networking linux