我正在使用这个简单的命令在我的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秒相同的输出