Você pode forçar o netcat a ter sucesso apenas se todas as portas no intervalo de portas forem bem-sucedidas?

0

Eu uso nc como parte de um script de verificação e verifique a saída de cada comando nc listado em relação ao resultado esperado.

por exemplo,

nc -zvw1 serv1.host.com 443 | gawk '{print $7}' Expected output: succeeded!

O problema que estou enfrentando é se eu quiser verificar um intervalo de portas, enquanto alguns testes podem, de fato, retornar succeeded! , não há garantia de que todas as portas sejam retornadas como tal. Isso é um problema para mim porque eu comparo cmd:output em uma base 1:1 , baseado em um arquivo de configuração que lista os comandos e a saída esperada.

Em vez de listar algo como:

nc -zvw1 serv1.host.com 443 | gawk '{print $7}' nc -zvw1 serv1.host.com 444 | gawk '{print $7}' nc -zvw1 serv1.host.com 445 | gawk '{print $7}'

Expected result: succeeded! Expected result: succeeded! Expected result: succeeded!

Gostaria de forçar o nc a falhar se qualquer portas no intervalo falharem; então, neste caso, minha configuração poderia ser condicionada a:

nc -zvw1 serv1.host.com 443-445 | gawk '{print $7}' Expected result: succeeded!

Esta é uma descrição prolixa de uma questão direta, infelizmente. Desculpas.

    
por MrDuk 02.06.2015 / 19:41

1 resposta

1

Isso provavelmente funcionaria:

seq 443 445 \
| xargs -n1 sh -c 'nc -zvw1 serv1.host.com $0 >/dev/null 2>&1 || (echo error! && exit 255)' 2>/dev/null \
&& echo succeeded!

Emula basicamente os intervalos de porta com seq e xargs e utiliza o valor de retorno de nc para echo error! e a configuração exit 255 para abortar xargs ou echo succeeded! quando se conectou com êxito a cada determinado número de porta.

    
por 02.06.2015 / 20:08

Tags