我尝试了不同的命令netstat,lsof,但我的要求是,我想传递侦听端口,比如进程x正在运行在netstat上
我需要一个linux命令,它只读取端口32456,并希望像java -jar runs.jar端口那样在java中传递它。
因此,我需要一些命令才能只获得运行端口或侦听端口。如果我尝试这样的netstat命令,我将得到大约20行端口。
发布于 2015-03-14 05:39:37
netstat | awk '{print $4}' | sed -nr 's/.*:([0-9]+)/\1/p' | xargs java -jar runs.jar我对这个问题有点不清楚。上面的代码会将所有端口号插入java文件的参数中。
如果您确信它将出现在chl21000303.sesson.net上,那么您可以这样做
netstat | awk '{print $4}' | sed -nr 's/chl21000303.sesson.net:([0-9]+)/\1/p' | xargs java -jar runs.jar编辑-
为了完成,我简要地概述了每件事都在做什么。
netstat获取所有连接并将其连接到awk。awk获取第四列并将其连接到sed。sed使用正则表达式获取端口号,并将其作为参数传递到java程序。
发布于 2015-03-14 06:00:43
您可以在shell脚本中这样做。
var=`"netstat -atn | grep LISTEN | awk {print $4}"`
for x in $var
do
port=`echo $x | awk -F':' '{print $2}'`;
echo $port;
done在$port中有您的端口号,可以将它传递给您的java脚本。
https://stackoverflow.com/questions/29045812
复制相似问题