|
藍森林 http://www.lslnet.com 2006年6月26日 11:18
請教關於程序輸出分別提取的問題
小弟想從netstat的輸出中分別提取跟兩個外部ip地址的端口連接數情況, 因為socket連接較多,運行一次netstat要耗費很大資源和很長時間,所以想運行一次就把和這兩個ip的連接情況分別匯總提取出來,並放到數組內:
假設這兩個地址分別為:192.168.1.1和192.168.1.2,要查看的端口為1234,大家有什麼好辦法嗎?謝謝!!! |
用sed/awk提取,這些工具具體用法請參閱置頂shell十二篇 |
Unix系統裡包含unix域和Internet域的socket,所有在使用netstat使用一定的參數,應該不會非常占資源。
不妨使用如下類似的方法:
===
[vic@localhost ~]$ netstat --ip -n
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 192.168.1.14:48950 211.99.206.101:80 ESTABLISHED
tcp 0 410 192.168.1.14:33252 66.187.239.15:80 FIN_WAIT1
tcp 0 0 192.168.1.14:46351 218.30.70.102:80 ESTABLISHED
tcp 0 2529 192.168.1.14:46356 218.30.70.102:80 ESTABLISHED
tcp 0 1266 192.168.1.14:46354 218.30.70.102:80 ESTABLISHED
tcp 1340 1266 192.168.1.14:46355 218.30.70.102:80 ESTABLISHED
tcp 0 421 192.168.1.14:46352 218.30.70.102:80 ESTABLISHED
tcp 0 0 192.168.1.14:46353 218.30.70.102:80 ESTABLISHED
[vic@localhost ~]$ netstat --ip -n |grep 218.30.70.102:80
tcp 0 0 192.168.1.14:46351 218.30.70.102:80 ESTABLISHED
tcp 0 471 192.168.1.14:46356 218.30.70.102:80 ESTABLISHED
tcp 0 0 192.168.1.14:46354 218.30.70.102:80 ESTABLISHED
tcp 0 0 192.168.1.14:46355 218.30.70.102:80 ESTABLISHED
tcp 0 0 192.168.1.14:46352 218.30.70.102:80 ESTABLISHED
tcp 0 0 192.168.1.14:46353 218.30.70.102:80 ESTABLISHED
[vic@localhost ~]$ |
| |