gpt4 book ai didi

linux - 结合 Netstat 和 PS 的输出 - linux

转载 作者:太空宇宙 更新时间:2023-11-04 12:03:08 26 4
gpt4 key购买 nike

我想合并以下命令的输出:

-网络统计

    [root]# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:32552 0.0.0.0:* LISTEN
151634/java

-附言

[root]# ps -eo pid,cmd | grep 151634
130485 grep --color=auto 151634
151634 java -classpath

我想组合以下 2 个命令并获得以下输出(txt 文件):

PORT PID CMD
123 333 java/etc
234 444 java/etcetc
345 555 java/etcetcetc

我做了以下内容:

netstat -nltp | awk '{print $4}' | sed -e 's/.*://' 

这从 netstat -nltp 输出打印端口

for i in `netstat -nltp | awk {'print $7}' | awk -F '/' {'print $1'} | uniq` ; do ps -eo pid,cmd | grep $(echo $i | sed "s/^\(.\)/[\1]/g") ; done 

这从 netstat -nltp 命令获取 PID,然后从 PS 命令显示 PID 和 CMD(同时它不显示 grep --color=auto 结果

非常感谢!

LE:我删除了输出 html 以避免混淆。这只是它应该是什么样子的一个例子。

最佳答案

非常感谢JUSHJUSH,

我在这里写了我的回复,因为它对于评论回复来说太长了。

我还用 FOR 更新了脚本并且它起作用了,但是,脚本似乎没有获得正确的输出。

下面我会尽量解释

如果我有以下 netstat -nltp 输出

tcp 0 0 127.0.0.1:32552 0.0.0.0:* LISTEN 151634/java
tcp 0 0 10.77.66.33:8081 0.0.0.0:* 听 151634/java
tcp 0 0 0.0.0.0:7070 0.0.0.0:* 听 151634/java
tcp 0 0 0.0.0.0:9090 0.0.0.0:* 听 151634/java
tcp 0 0 0.0.0.0:20100 0.0.0.0:* 听 151634/java
tcp 0 0 0.0.0.0:20101 0.0.0.0:* 听 151634/java
tcp 0 0 0.0.0.0:20102 0.0.0.0:* LISTEN 151634/java

PID=151634 的 CMD 是 java -classpath/opt/application/nifi-1.6.0/./conf:/opt/application/nifi-1.6.0/./lib/jetty-schemas -3.1.jar:

脚本给出以下输出:端口 PID 命令
32552 151634 java -classpath/opt/application/nifi-1.6.0/./conf:/opt/application/nifi-1.6.0/./lib/jetty-schemas-3.1.jar:
32552 151634 java -classpath/opt/application/nifi-1.6.0/./conf:/opt/application/nifi-1.6.0/./lib/jetty-schemas-3.1.jar:
32552 151634 java -classpath/opt/application/nifi-1.6.0/./conf:/opt/application/nifi-1.6.0/./lib/jetty-schemas-3.1.jar:
32552 151634 java -classpath/opt/application/nifi-1.6.0/./conf:/opt/application/nifi-1.6.0/./lib/jetty-schemas-3.1.jar:
32552 151634 java -classpath/opt/application/nifi-1.6.0/./conf:/opt/application/nifi-1.6.0/./lib/jetty-schemas-3.1.jar:
32552 151634 java -classpath/opt/application/nifi-1.6.0/./conf:/opt/application/nifi-1.6.0/./lib/jetty-schemas-3.1.jar:
32552 151634 java -classpath/opt/application/nifi-1.6.0/./conf:/opt/application/nifi-1.6.0/./lib/jetty-schemas-3.1.jar:

输出应该是端口 PID 命令
32552 151634 上面的 CMD
8081 151634 上面的 CMD
7070 151634 上面的 CMD
9090 151634 上面的 CMD
20100 151634 来自上面的 CMD
20101 151634 来自上面的 CMD
20102 151634 来自上面的 CMD

或者,另一个例子:

如果我有以下 netstat -nltp 输出

tcp 0 0 127.0.0.1:3030 0.0.0.0:* LISTEN 88284/ ruby
tcp 0 0 127.0.0.1:3031 0.0.0.0:* 监听 88284/ruby

PID=88284 的 CMD 是 /opt/sensu/embedded/bin/ruby/opt/sensu/bin/sensu-client -c/etc/sensu/config.json -d/etc/sensu/conf.d -e/etc/sensu/extensions -p/var/run/sensu/sensu-client.pid -l/var/log/sensu/sensu-client.log -L warn

脚本给出以下输出:端口 PID 命令
3030 88284/opt/sensu/embedded/bin/ruby/opt/sensu/bin/sensu-client -c/etc/sensu/config.json -d/etc/sensu/conf.d -e/etc/sensu/extensions -p/var/run/sensu/sensu-client.pid -l/var/log/sensu/sensu-client.log -L 警告
3030 88284/opt/sensu/embedded/bin/ruby/opt/sensu/bin/sensu-client -c/etc/sensu/config.json -d/etc/sensu/conf.d -e/etc/sensu/extensions -p/var/run/sensu/sensu-client.pid -l/var/log/sensu/sensu-client.log -L 警告

输出应该是端口 PID 命令
3030 88284 上面的 CMD
3031 88284 来自上面的 CMD

非常感谢您的帮助和耐心等待!

关于linux - 结合 Netstat 和 PS 的输出 - linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51669518/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com