首先在命令上(listenPort是要查看的端口):
netstat -tlnp | grep“: $ {listenPort}” | awk'{print $ NF}'| awk -F'/''{print $ 1}'
此命令的应用场景主要是查询哪个进程占用了本机上的某个端口如何查看本机进程,并使用该端口启动tcp监视.
首先,分析netstat参数:
-t: TCP连接. 由于我要查询的进程是tomcat进程,因此它是tcp连接. 在此添加此参数会限制查询集. 如果未添加,它将包括udp监视和Active UNIX域套接字(不太熟悉),udp和tcp可以同时侦听同一端口,因此在此处添加限制可确保获得独特的结果.
-l: --listening仅显示侦听套接字. 也就是说,仅显示本地监视结果,因此不显示本地对应的外部端口的连接.
-n: 以数字形式显示查询结果,以确保端口可以正确匹配(否则如何查看本机进程,诸如80之类的端口可能显示为http,从而导致端口不匹配)
-p: 显示侦听器的进程,用于提取进程pid
上面的参数-l是核心.
第二,管道到grep
grep“: $ {listenPort}”
因为仅查询本地监视,所以外部监视通常显示为: *,因此请使用“: $ {listenPort}”进行匹配. 在这里,如果仅允许外部指定的端口进行连接,并且实际上是在侦听端口,则它将实际上与错误匹配. 涉及这个场景,如果有位伟大的神有一个好的解决方案,希望能启发我
三,pid提取,这里不多说了,提取最后一列,然后使用/拆分,提取剩余内容
| awk'{print $ NF}'| awk -F'/''{print $ 1}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-151174-1.html