Netstat持续刷新(观看更改输出)

我正在使用这个简单的命令在我的Debian服务器上监视连接(以处理最近的DoS攻击):

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n 

我如何连续运行? 所以它会每分钟刷新一次(当然还有任何给定的时间)。 我试过手表:

 watch -n 30 "netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n" 

但它改变了连接数好的清单的输出到这样的东西:

 1 tcp 0 10015 [LOCAL IP] ... 1 Proto Recv-Q Send-Q Local Address Foreign Address State 1 Active Internet connections (w/o servers) 

所以外部IP不被显示。 有什么我错过了吗?

这是原始输出的样子:

  2 [IP ADDRESS] 4 [IP ADDRESS] 4 [IP ADDRESS] 4 [IP ADDRESS] 7 [IP ADDRESS] 16 [IP ADDRESS] 71 [IP ADDRESS] 

而当我说[LOCAL IP]我的意思是我的机器的IP。

当我用-c运行它就会冻结。

 netstat -c 

可以帮助你,如果我没有误解你的问题。 -c代表 – 连续的。

编辑:你去了:

 watch -n 30 "netstat -ntu | awk '{print \$5}' | cut -d: -f1 | sort | uniq -c | sort -n" 

我在$之前添加了一个\。

只需运行一个睡眠60秒的循环

 [root@host] $ while true > do > netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n > sleep 60 > done 

这会给你每60秒相同的输出