Não sei ao certo o que você quer dizer com "considerar $ count > 0 como estalished?", mas isso parece uma contagem válida de conexões estabelecidas para uma determinada porta. Você pode querer restringir a uma determinada interface ou protocolo (então dois serviços diferentes ouvindo na mesma porta, mas em interfaces diferentes, não se misturam).
Além disso, você também pode simplificar um pouco o comando:
count=$(netstat -an | awk -v port=":$PORT\$" '$4 ~ port && $6 == "ESTABLISHED" {count++} END {print count}')
Você também pode usar lsof
. lsof -i :$PORT
listará as conexões abertas nessa porta e você poderá usar a opção -n
(semelhante a -n
in netstat
) e -F T
(para listar PID, número do descritor de arquivo e apenas os estados TCP) para facilitar a análise:
lsof -ni ":$PORT" -FT | grep -c TST=ESTABLISHED