Use a opção detalhada e verifique se a contagem de saída dos bytes enviados é diferente de zero. Por exemplo, usando awk para sair 1 se a contagem for zero:
nc -v -w 3 localhost 80 2>/tmp/log
awk '/bytes sent/{exit($2==0)}' < /tmp/log
echo $?
Estou tentando enviar alguns dados para um servidor com um comando como nc -w 3 IP_ADDRESS PORT < data
onde nc é o netcat do FreeBSD 5.4 . Quando o servidor não responde dentro de 3 segundos, não obtenho indicação alguma (o código de saída é 0 e não há saída de terminal). Como posso enviar dados para o servidor e ser alertado quando ocorre um tempo limite?
Use a opção detalhada e verifique se a contagem de saída dos bytes enviados é diferente de zero. Por exemplo, usando awk para sair 1 se a contagem for zero:
nc -v -w 3 localhost 80 2>/tmp/log
awk '/bytes sent/{exit($2==0)}' < /tmp/log
echo $?