“你怎么看?”;加入;bash脚本中两个unix命令的结果?
下面返回与应用程序中的套接字关联的所有文件描述符的列表:“你怎么看?”;加入;bash脚本中两个unix命令的结果?,bash,Bash,下面返回与应用程序中的套接字关联的所有文件描述符的列表: ls -haltr /proc/$PID/fd/ | cut -f3 -d":" | cut -f2 -d"[" | cut -f1 -d"]" | grep '^[0-9][0-9]*$' | sort -h 文件描述符的编号与netstat中使用-e标志找到的编号相同,它是最后一列: netstat -ante tcp 0 0 1.9.146.125:41460 192.28.1.48:443 ESTABLISH
ls -haltr /proc/$PID/fd/ | cut -f3 -d":" | cut -f2 -d"[" | cut -f1 -d"]" | grep '^[0-9][0-9]*$' | sort -h
文件描述符的编号与netstat中使用-e
标志找到的编号相同,它是最后一列:
netstat -ante
tcp 0 0 1.9.146.125:41460 192.28.1.48:443 ESTABLISHED 0 83999
tcp 0 0 1.9.146.125:59270 192.28.7.28:443 ESTABLISHED 0 58975
tcp 0 0 1.9.146.125:34948 192.28.14.8:443 ESTABLISHED 0 67916
如何将两者连接在一起,以便只看到与文件描述符匹配的行?我最终通过反复试验找到了一种方法。不过,我打赌有更好的方法:
arr=(`ls -haltr /proc/2293/fd/ | cut -f3 -d":" | sort -u | \
cut -f2 -d"[" | cut -f1 -d"]" | grep '^[0-9][0-9]*$' | sort -h`); \
pat=$(echo ${arr[@]}|tr " " "|"); netstat -ante | grep -Ew "($pat)"
也可以使用
join
命令。分号和反斜杠似乎是多余的-一行是一个贬义词,而不是赞美词。我不知道Join命令,谢谢。我会查的;反斜杠只是为了让它在堆栈溢出时可读;我对“一号线”这个词没有情感上的联想(好或坏)。根本的问题是什么?获取给定PID的打开连接的地址?基本上,我想知道如何根据结果中的一列连接两个bash命令的输出。但是,是的,我正在努力找出这个应用程序(pid)连接到了什么。