使用netstat命令统计established状态的连接数

 

netstat -an|awk -F "[ :]+" '/ESTAB/ {S[$(NF-3)]++}END{for(k in S) print S[k],k}'|sort -rn|head 
62 10.19.168.86
15 180.168.234.23
10 10.10.78.165
6 10.9.145.144
2 10.9.119.253
1 127.0.0.1
1 10.9.190.18
1 106.75.53.12
1 10.19.60.128
1 10.19.161.231


-F [  :] 表示指定分隔符可以是:或者空格,这里指定多个分隔符

[ ]表示一个字符的集合,+则是一个正则表达式,表示+前面的字符(:或者空格)重复一次或者一次以上

例如:

 

[root@SRV-OPS10-ANSIBLE06 ~]# echo "1::::2 3 4" | awk -F '[: ]' '{print $4}'


[root@SRV-OPS10-ANSIBLE06 ~]# echo "1::::2 3 4" | awk -F '[: ]+' '{print $4}'
4


第一个没有+号,查询结果为空,而有+后,查询结果为4

再例如:

 

# echo "1::::2 3 4" | awk -F ':' '{print $5}'
2 3 4


[root@SRV-OPS10-ANSIBLE06 ~]# echo "1::::2 3 4" | awk -F '[: ]' '{print $5}' 
2


以:作为分隔符,2 3 4被当做一个整体作为查询结果输出,而把空格加上后,则输出结果为2

 

 

 netstat -an|awk -F "[ :]+" '/ESTAB/'
 
tcp 0 0 10.9.154.150:58635 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:41777 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58815 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:38505 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:34508 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58692 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58812 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:32984 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:56873 10.9.190.18:10050 ESTABLISHED 
tcp 0 0 10.9.154.150:38997 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:42994 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58065 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58648 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:33109 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58641 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:22 180.168.129.46:54271 ESTABLISHED 
tcp 0 0 10.9.154.150:55594 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:33821 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:38948 10.19.132.153:10050 ESTABLISHED 
tcp 0 0 10.9.154.150:58695 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:39886 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:34063 10.10.78.165:10050 ESTABLISHED 
tcp 0 0 10.9.154.150:56932 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:38142 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58638 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58443 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58684 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:33678 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:33468 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58814 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58649 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58619 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58698 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58623 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58647 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:38518 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:60075 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:60963 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58611 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58813 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:37667 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:22 180.168.129.46:4449 ESTABLISHED 
tcp 0 0 10.9.154.150:42697 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:41785 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:2049 10.19.161.168:933 ESTABLISHED 
tcp 0 448 10.9.154.150:22 180.168.129.46:59852 ESTABLISHED 
tcp 0 0 10.9.154.150:45292 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58642 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58702 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58624 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58636 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58817 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:56991 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:56142 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:35332 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:39675 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:48701 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58816 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:33910 10.19.161.231:10050 ESTABLISHED 
tcp 0 0 10.9.154.150:58615 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:55459 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:854 10.19.140.120:2049 ESTABLISHED 
tcp 0 0 10.9.154.150:43902 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58811 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:59672 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58618 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58640 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58808 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:49803 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58639 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:60326 10.10.134.7:10050 ESTABLISHED 
tcp 0 0 10.9.154.150:55615 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:58637 10.19.168.86:3306 ESTABLISHED 
tcp 0 0 10.9.154.150:34295 10.10.78.165:10050 ESTABLISHED 
tcp 0 0 10.9.154.150:22 180.168.129.46:63288 ESTABLISHED

第一个ip是本机ip,第二个ip才是跟本机建立连接的外部ip,所以最上面的命令使用$NF-3来获取外部ip地址。

如果要改成以端口来查看连接数,可以将$NF-3改成$NF-2


# netstat -an | awk -F "[ :]+" '/ESTAB/ {S[$(NF-2)]++}END{for(k in S) print S[k],k}' |sort -rn|head  
63 3306
8 10050
1 933
1 8088
1 63288
1 60732
1 54271
1 45803
1 4449
1 443