腳本如下
#下列 | 表示接續處理。
netstat -anopt |grep $pid|head -n 1|awk '{printf $4}'|cut -d: -f4
腳本解釋
-
netstat -anopt
獲取應用程序網絡連接狀態
參數說明:
-a (all) 顯示所有選項,默認不顯示LISTEN相關。
-t (tcp) 僅顯示tcp相關選項。
-u (udp) 僅顯示udp相關選項。
-n 拒絕顯示別名,能顯示數字的全部轉化成數字。
-l 僅列出有在 Listen (監聽) 的服務狀態。
-p 顯示建立相關鏈接的程序名
-r 顯示路由信息,路由表
-e 顯示擴展信息,例如uid等
-s 按各個協議進行統計
-c 每隔一個固定時間,執行該netstat命令。返回字段說明:
Proto:顯示連接使用的協議。
RefCnt:表示連接到本套接口上的進程號。
Types:顯示套接口的類型。
State:顯示套接口當前的狀態。
I-NODE:端口號。
Path:表示連接到套接口的其它進程使用的路徑名 -
grep %pid
是獲取該pid的行記錄 -
head -n 1
獲取第一行記錄。
例子:netstat -anopt |grep $pid|head -n 1
如下圖:
-
awk '{printf $4}'
awk相似於split,默認按照空格分割,之後獲取第四個位置對應的值如上圖 是:::80
。
列子:netstat -anopt |grep 24754|head -n 1|awk '{printf $4}'
如下圖:
-
cut -d: -f4
是表示切割,-d是表示按照指定的pattern切割,此處是指定冒號:
,-f4是表示取第四個值,如:::80
執行後得到80
。