获取连接数的命令:netstat -an | awk /^tcp/'{++S[$NF]}END {for (key in S) print S[key],key}'|sort -nr
命令拆分 | 功能说明 |
/^tcp/ | 过滤出以tcp开头的行,”^”为正则表达式用法,用…开头,这里是过滤出以tcp开头的行 |
S[] | 定义了一个名叫S的数组,在awk中,数组下标通常从1开始,而不是0 |
NF | 当前记录里域个数,默认以空格分隔,如上所示的记录,NF域个数等于6 |
$NF | 表示一行的最后一个域的值,如上所示的记录。$NF也就是6,表示第6个字段的值,也就是SYN_RECV或TIME_WAIT等。 |
S[$NF] | 表示数组元素的值,如上所示的记录,就是S[TIME_WAIT]状态的连接数 |
++ S[$NF] | 表示把某个数加一,如上所示的记录,就是把S[TIME_WAIT]状态连接数加一 |
END |
|
for(key in S) | 遍历S[]数组 |
S[key] | 打印个数 |
print key,”\t”,S[key] | 打印数组的键和值,中间用\t制表符分割,显示好一些 |