获取打开的连接数
Getting count of open connections
我已经通过 fabric 自动部署了我的应用程序,并且需要添加一个新步骤,我将我的应用程序从负载均衡器中的轮换中取出,然后观察来自均衡器的入站连接,直到它们变为 0 . 问题是,我不确定如何获取入站连接数。
我可以使用 tcpdump 来查看我的端口 POST。然而,这有点难以在织物中使用。我想要的只是 运行 一个带有计时器的循环,该循环不断获取活动入站连接的数量并在 0 时退出。有人做过这样的事情吗?或者也许有人会知道我如何从 shell 中实现这一点,然后我可以将其放入织物中?
netstat
是获取此信息的最简单方法之一,但是,正如您所指出的,仅使用 grep
解析 netstat
的输出会产生次优结果,因为它将匹配传入和传出连接(至少没有足够复杂的搜索表达式,或使用 cut
等进行预处理)。我建议改用这条路线:
netstat -ap | awk ' == "tcp" && ~ /:(80|443)$/' | wc -l
这将计算基于 TCP 的连接,并且本地端连接到端口 80 或 443,这将与传入连接相对应。将 </code> 替换为 <code>
以捕获传出连接。
某处可能会有细微的变化,但是,这就是现在的工作方式。
netstat -an | awk ' == "tcp" && ~ /:(80|443)$/' | wc -l
netstat -an | awk ' == "tcp" && ~ /:(80|443)$/' | wc -l
根据当前的 netstat 帮助,-n means don't resolve names
但 -p only means display PID/Program name for sockets
。因此,上述解决方案中 awk 中对 </code> 和 <code>
的检查将失败。
此外,上述命令还returns关闭了端口和其他未建立的连接。所以,我们应该改用这个:
netstat -an | awk ' == "tcp" && ~ /:(80|443)$/ && ==ESTABLISHED' | wc -l
netstat -an | awk ' == "tcp" && ~ /:(80|443)$/ && ==ESTABLISHED' | wc -l
此外,这也有效::
netstat -ap | awk ' == "tcp" && ~ /:(http|https)$/' | wc -l
netstat -ap | awk ' == "tcp" && ~ /:(http|https)$/' | wc -l
我已经通过 fabric 自动部署了我的应用程序,并且需要添加一个新步骤,我将我的应用程序从负载均衡器中的轮换中取出,然后观察来自均衡器的入站连接,直到它们变为 0 . 问题是,我不确定如何获取入站连接数。
我可以使用 tcpdump 来查看我的端口 POST。然而,这有点难以在织物中使用。我想要的只是 运行 一个带有计时器的循环,该循环不断获取活动入站连接的数量并在 0 时退出。有人做过这样的事情吗?或者也许有人会知道我如何从 shell 中实现这一点,然后我可以将其放入织物中?
netstat
是获取此信息的最简单方法之一,但是,正如您所指出的,仅使用 grep
解析 netstat
的输出会产生次优结果,因为它将匹配传入和传出连接(至少没有足够复杂的搜索表达式,或使用 cut
等进行预处理)。我建议改用这条路线:
netstat -ap | awk ' == "tcp" && ~ /:(80|443)$/' | wc -l
这将计算基于 TCP 的连接,并且本地端连接到端口 80 或 443,这将与传入连接相对应。将 </code> 替换为 <code>
以捕获传出连接。
某处可能会有细微的变化,但是,这就是现在的工作方式。
netstat -an | awk ' == "tcp" && ~ /:(80|443)$/' | wc -l
netstat -an | awk ' == "tcp" && ~ /:(80|443)$/' | wc -l
根据当前的 netstat 帮助,-n means don't resolve names
但 -p only means display PID/Program name for sockets
。因此,上述解决方案中 awk 中对 </code> 和 <code>
的检查将失败。
此外,上述命令还returns关闭了端口和其他未建立的连接。所以,我们应该改用这个:
netstat -an | awk ' == "tcp" && ~ /:(80|443)$/ && ==ESTABLISHED' | wc -l
netstat -an | awk ' == "tcp" && ~ /:(80|443)$/ && ==ESTABLISHED' | wc -l
此外,这也有效::
netstat -ap | awk ' == "tcp" && ~ /:(http|https)$/' | wc -l
netstat -ap | awk ' == "tcp" && ~ /:(http|https)$/' | wc -l