![使用 darkstat 监控带宽——如何排除我的动态分配的 IP 地址?](https://linux22.com/image/797199/%E4%BD%BF%E7%94%A8%20darkstat%20%E7%9B%91%E6%8E%A7%E5%B8%A6%E5%AE%BD%E2%80%94%E2%80%94%E5%A6%82%E4%BD%95%E6%8E%92%E9%99%A4%E6%88%91%E7%9A%84%E5%8A%A8%E6%80%81%E5%88%86%E9%85%8D%E7%9A%84%20IP%20%E5%9C%B0%E5%9D%80%EF%BC%9F.png)
我正在使用 darkstat 收集有关本地机器带宽使用情况的数据。我的互联网连接由 3G USB 棒提供,连接到移动网络。每次连接到互联网时,我都会获得不同的 IP 地址。我的问题是如何配置 darkstat,以便它不会在其输出中包含往返于我自己的 IP 地址的流量?
如果我按如下方式运行 darkstat:
sudo darkstat -i ppp0
然后生成的图表显示我自己的 IP 地址使用率最高:
IP Hostname In Out Total Last seen
49.***.***.*** ***.***.***.***.dyn.cust.vf.net.nz 19,790,395 2,683,631 22,474,026 2 secs
202.7.6.10 ubuntu.citylink.co.nz 472,523 7,624,768 8,097,291 5 mins, 46 secs
131.114.21.22 jake.unipi.it 133,012 1,492,900 1,625,912 9 mins, 10 secs
91.189.92.184 zaurac.canonical.com 49,147 755,590 804,737 52 mins, 2 secs
... 等等。
我意识到我可以使用 -f 和/或 -l 开关来修改受监控的 IP 地址范围,但我不知道如何设置它以排除我的动态分配的 IP 地址。
有没有人有什么建议?
答案1
嗯,您肯定需要将地址作为端点,但如果您想动态地将其从结果中过滤掉,您可以通过一系列步骤来读取接口的地址,然后将其用作过滤条件。下面是一个脚本,它通过从接口中选择配置、查找 inet 地址字段、仅匹配地址数字、选择第一个结果,然后设置锚点来过滤 IP 地址。
长版本简短来说,它将删除以相关接口的 IP 开头的任何行。
sudo darkstat -i ppp0 | grep -v `ifconfig ppp0 \
| grep 'inet addr' | egrep -o '[0-9.]+' | head -n 1 | sed 's/^/^/'``