我没有使用awk & cut的经验,请帮助我回答我的问题,我有命令来计算从每个ip地址到我的服务器端口80的总连接数
netstat -na|grep ":80" |awk '{print $5}'|cut -d : -f1|sort | uniq -c | sort -nr
4 173.252.80.117
4 173.252.80.116
4 173.252.80.113
2 173.252.80.119
2 173.252.80.118
2 173.252.80.115
1 66.249.64.170
1 173.252.80.114
1 173.252.80.112我使用命令列出服务器端口80与每个ip地址之间的连接状态
netstat -nat | grep ":80" | grep -v LISTEN | awk '{print $5 "\t" $6}' | sort | uniq -c
1 192.168.14.91:54008 TIME_WAIT
1 192.168.14.91:54009 TIME_WAIT
1 192.168.14.91:54010 TIME_WAIT
1 192.168.14.91:54011 TIME_WAIT
1 192.168.14.91:54012 TIME_WAIT
1 192.168.14.91:54013 TIME_WAIT
1 192.168.15.82:54071 ESTABLISHED
1 192.168.15.82:54072 ESTABLISHED
1 192.168.15.82:54073 ESTABLISHED
1 192.168.15.82:54074 ESTABLISHED
1 192.168.15.82:54075 ESTABLISHED
1 192.168.15.82:54076 ESTABLISHED如何更改我的命令以生成如下输出:
3 192.168.14.91成立2 192.168.14.91 FIN_WAIT2 6 192.168.14.91 TIME_WAIT 6 192.168.15.82成立2 192.168.15.82 SYN_RECEIVED 6 192.168.15.82 TIME_WAIT
发布于 2014-12-15 12:24:19
通过awk
netstat -nat |awk '!/LISTEN/&&/:80/{split($5,a,":");b[a[1] FS $6]++}END{for (i in b) print b[i],i}'发布于 2014-12-15 14:54:33
变化
netstat -na |
grep ":80" |awk '{print $5}'|cut -d : -f1|sort | uniq -c至
netstat -na |
awk -v OFS='\t' '/:80/{split($5,a,/:/); cnt[a[1]]++} END{for (ip in cnt) print cnt[ip], ip}'和
netstat -nat |
grep ":80" | grep -v LISTEN | awk '{print $5 "\t" $6}' | sort | uniq -c至
netstat -nat |
awk -v OFS='\t' '/:80/ && !/LISTEN/{split($5,a,/:/); cnt[a[1] OFS $6]++} END{for (ip in cnt) print cnt[ip], ip}'和| sort -nr到你喜欢的结尾。
https://stackoverflow.com/questions/27477204
复制相似问题