Em um script bash, como posso descobrir rapidamente se uma porta 445 está aberta / escutando em um servidor.
Eu tentei algumas opções, mas quero algo rápido:
1. lsof -i :445 (Leva segundos)
2. netstat -an |grep 445 |grep LISTEN(Leva segundos)
3. telnet(não retorna)
4. nmap, netcatnão está disponível no servidor
Será bom saber de uma maneira que não enumere primeiro e depois cumpra.
netstat -lnt(com -te sem -a) limitará a saída apenas às conexões TCP. Pode acelerar um pouco. Você pode adicionar -4para o IPv4 apenas se não precisar do IPv6.
netstat -an | grep PORTNUMBER | grep -i listenSe a saída estiver vazia, a porta não está em uso.
lsofé lento para você, mas normalmente é a melhor das soluções que você listou. Sua netstatsolução não é muito confiável (você pode adivinhar sempre que usar grep; de qualquer maneira, ela retornará verdadeira se alguém estiver ouvindo, por exemplo, 4450). telnete netcattente criar uma conexão, que nem sempre é o que você deseja.