
Utilizo este comando para escuchar el puerto y volcar datos al archivo:
while : ; do nc -l 0.0.0.0 10000 > log.txt & done
La primera solicitud funciona perfectamente, se descarga en log.txt pero después de la primera solicitud, el nc ya no escucha sino que se detiene.
¿Alguien puede indicarme qué hago mal?
Solo quiero que esto se ejecute en segundo plano continuamente y registre cualquier solicitud desde este puerto en el archivo log.txt...
Respuesta1
Debes agregar una opción paraCarolina del Norte. La opción depende de la versión deCarolina del Norteestas corriendo. Por ejemplo, en mi caso (Kubuntu), la opción es-k. Desde la página de manual,
-k Obliga a nc a permanecer escuchando otra conexión después de que se completa su conexión actual. Es un error utilizar esta opción sin la opción -l.
No puedo prometer-kfunciona (a menos que seas Ubuntu, por supuesto), tendrás que buscar algo similar. Por ejemplo, en mi Debian,-kno existe, pero encuentras:
-q segundos después de EOF en stdin, espere la cantidad de segundos especificada y luego salga. Si los segundos son negativos, espere para siempre.
Editar:
Para comprobar que funciona, en una pc:
nc -k -l 0.0.0.0 10000 > out.txt
En una segunda computadora:
echo Hello | nc IP_address_of_first_pc 10000
Emita el comando anterior varias veces y luego interrumpa elCarolina del Nortecomando en pc1, verifique el número de líneas en out.txt.