Como alternativa, leia o arquivo / proc / net / tcp em vez de lidar com os problemas de segurança de executar um programa shell.
Estou usando netstat -lt | grep LISTEN
para listar todas as portas tcp que estão escutando. Eu devo usar esses dados pelo meu aplicativo java, então eu quero formatar a saída no shell para reduzir a sobrecarga de processamento em Java. O que eu quero é:
Protocol port status
tcp 4567 LISTEN
tipo de saída. Existe alguma maneira de conseguir isso usando o netstat ou há outros aplicativos de rede fornecidos pelo unix para fazer isso?
Eu também tentei ler os arquivos de serviços por:
less /etc/services | grep tcp | cut -d '#' -f 1
mas dessa forma listará todas as portas tcp mesmo que estejam abertas ou não. Qualquer sugestão seria ótima!
Como alternativa, leia o arquivo / proc / net / tcp em vez de lidar com os problemas de segurança de executar um programa shell.
Isso não inclui os cabeçalhos de coluna, mas fornece os dados desejados em um formato delimitado por tabulações
netstat -lnt | tail -n+3 | awk '{print $1 "\t" $4 "\t" $6}'
Em execução no meu computador, recebo a seguinte saída
tcp 127.0.0.1:3306 LISTEN
tcp 0.0.0.0:22 LISTEN
tcp6 :::22 LISTEN