有什么方法可以用bash监视特定UDP端口上的传入通信速度吗?
有像nload,vnstat这样的工具来显示特定接口上的流量。
在这种情况下谁能帮帮我吗?因为我想根据特定端口上的交通流执行一些bash操作。
发布于 2022-09-12 15:02:10
tcpdump -i eth0 -w /tmp/xxx.pcap udp port xxx会给你一个端口xxx的。
如果它只是贸易卷,您可以黑出如下内容:
while : ; do
sudo timeout 5 tcpdump -i eth0 -s0 port 53 2> /dev/null | wc -l ;
done发布于 2022-09-12 19:52:40
对于速率测量,我推荐pv (来自Debian/Ubuntu中的pv包)。它可以计数行和字节。
例如,一个基本的tcpdump为每个包提供一行,因此这将每2秒打印一次分组速率:
tcpdump -ni eth0 udp port 66 |pv -li2 >/dev/null对于字节率,请让tcpdump输出原始数据包,并让pv计数这些字节(默认模式):
tcpdump -ni eth0 udp port 66 -w- |pv -i2 >/dev/null但是,我不确定你能不能以一种非交互的方式使用它(比如“10的样本然后给我一个测量”)。我发现最接近的就是这样的伎俩:
rate="$((timeout 11 tcpdump -ni eth0 udp port 66 -w- 2>/dev/null |pv -i10 -F%a -f >/dev/null) 2>&1)"https://unix.stackexchange.com/questions/717015
复制相似问题