bashスクリプトから、ポート445がサーバー上で開いているか、リッスンしているかどうかをすばやく確認するにはどうすればよいですか。
私はいくつかのオプションを試しましたが、簡単なものが欲しいです:
1. lsof -i :445 (数秒かかります)
2. netstat -an |grep 445 |grep LISTEN(数秒かかります)
3. telnet(戻りません)
4. nmap、netcatサーバーで使用できません
最初に列挙せず、その後に歩む方法を知っておくといいでしょう。
netstat -lnt(あり-t、なし-a)では、リスニングTCP接続のみに出力が制限されます。少しスピードアップするかもしれません。-4IPv6が必要ない場合にのみ、IPv4 を追加できます。
netstat -an | grep PORTNUMBER | grep -i listen出力が空の場合、ポートは使用されていません。
lsofあなたにとって遅いのかはわかりませんが、通常はあなたが挙げたソリューションの中で最高です。あなたのnetstat解決策はあまり信頼できません(あなたが使うときはいつでもそれを推測できますgrep;とにかく誰かが例えば4450で聞いているならそれはtrueを返します)。telnetそして、netcat実際に接続を作成しようとしますが、それが常に希望するものであるとは限りません。