我最近在服务器方面遇到了一些问题。所以我只想留下一个窗口来显示连接设备的唯一性和IP。
我一直在使用:
watch -n 5 "netstat -tn 2>/dev/null | grep :80 | awk '{print $5}' | sed 's/.*::ffff://' | sort | uniq -c | sort -nr"
这是格式化失败时的输出示例
这是一个未格式化的 Netstat 示例
造成混乱的原因是我awk '{print $5}'
只用来打印第五列
我假设它是因为我试图将手表与点数一起使用,但有些东西与另一个不一致。
任何人都可以建议对一个衬垫进行调整,或者任何人都可以建议另一种工具来监视与服务器的活动连接(对本地连接不感兴趣)
答案1
我会尝试
... | awk '$5 ~ /:80$/ { split($5,A,":") ; if ( !u[A[1]]++ ) print A[1] ;} '
它应该过滤端口 80 上的远程 IP。
- 无需
grep | awk | sed
!! $5 ~ /:80$/
过滤以 80 结尾的第五个字段!u[A[1]]++
仅有效一次split()
将导致 IP onA[1]
(和 port onA[2]
)(至少对于纯 IPV4 )
应付手表之类的
while true
do
netstat -tn 2>/dev/null | awk '$5 ~ /:80$/ { split($5,A,":") ; if ( !u[A[1]]++ ) print A[1] ;} '
sleep 5
done