Ouça a porta continuamente e despeje os dados no arquivo

Ouça a porta continuamente e despeje os dados no arquivo

Eu uso este comando para escutar a porta e despejar dados no arquivo:

while :  ; do nc -l 0.0.0.0 10000 > log.txt & done

A primeira solicitação funciona perfeitamente, é despejada em log.txt, mas após a primeira solicitação, o nc não está mais ouvindo, mas parou.

Alguém pode me indicar o que eu faço de errado?

Eu só quero que isso seja executado continuamente em segundo plano e registre qualquer solicitação desta porta no arquivo log.txt ...

Responder1

Você deve adicionar uma opção paranão. A opção depende da versão donãovocê está correndo. Por exemplo, no meu caso (Kubuntu), a opção é-k. Na página de manual,

-k Força nc a ficar ouvindo outra conexão após a conexão atual ser concluída. É um erro usar esta opção sem a opção -l.

Eu não posso prometer-kfunciona (a menos que você seja Ubuntu, é claro), você terá que procurar por algo semelhante. Por exemplo, no meu Debian,-knão existe, mas você encontra:

-q segundos após EOF em stdin, aguarde o número especificado de segundos e saia. Se segundos for negativo, espere para sempre

Editar:

Para verificar se funciona, em um PC:

  nc -k -l 0.0.0.0 10000 > out.txt

Em um segundo PC:

  echo Hello | nc IP_address_of_first_pc 10000

Emita o comando acima algumas vezes e depois interrompa onãocomando em pc1, verifique o número de linhas em out.txt.

informação relacionada