En un host remoto, ejecuto este comando:
tcpdump -i any -v "tcp or udp" > /tmp/tcpdump.log
Entonces, si hay tráfico TCP / UDP en ese host, la salida de tcpdump se guarda en /tmp/tcpdump.log
En mi host perdido tengo 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"
cuando ejecuto este script una vez, funciona bien. Pero cuando lo coloco en un bucle, puede estropearlo fácilmente, tcpdump.diff no captura una salida tcpdump completa o tiene más de una ronda de salida.
Me parece que lo siguiente está desincronizado:
- remoto: tcpdump guarda el resultado en /tmp/tcpdump.log
- remoto - copia de seguridad /tmp/tcpdump.log
- local - crear tráfico
¿Hay alguna solución simple para ponerlos en orden? ¿Tengo que crear algún archivo temporal en el host remoto como un semáforo?
linux
networking
my_question
fuente
fuente
3
¿Para qué es este artilugio? ¿Estás seguro de que no hay Problema XY ¿aquí?
Kamil Maciorowski