Ouvir a porta continuamente e descarregar dados para o arquivo

5

Eu uso este comando para ouvir dados de porta e despejo para o arquivo:

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

O primeiro pedido funciona perfeito, ele é descartado no log.txt, mas após o primeiro pedido, o nc não está mais ouvindo, mas parou.

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

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

    
por Cristian Boariu 28.01.2014 / 12:16

1 resposta

12

Você deve adicionar uma opção a nc . A opção depende da versão do nc que você está executando. Por exemplo, no meu caso (Kubuntu), a opção é -k . Na página do manual,

-k Forces nc to stay listening for another connection after its current connection is completed. It is an error to use this option without the -l option.

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

-q seconds after EOF on stdin, wait the specified number of seconds and then quit. If seconds is negative, wait forever

Editar:

Para verificar se funciona, em um computador:

  nc -k -l 0.0.0.0 10000 > out.txt

Em um segundo computador:

  echo Hello | nc IP_address_of_first_pc 10000

Emita o comando acima algumas vezes, então interrompa o comando nc no pc1, verifique o número de linhas em out.txt.

    
por 28.01.2014 / 12:58

Tags