Como sincronizar o programa em execução no host remoto e no host local?

0

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:

  1. remote - tcpdump salva a saída em /tmp/tcpdump.log
  2. remoto - backup /tmp/tcpdump.log
  3. local - criar tráfego

Existe alguma solução simples para colocá-los na ordem correta? Preciso criar algum arquivo temporário no host remoto como um semáforo?

    
por my_question 24.03.2018 / 00:44

0 respostas