Bash

bash 命令獲取網路資訊

  • October 10, 2022

我需要一個 bash 命令來獲取目前的網路頻寬吞吐量網卡正常執行時間,但我還沒有在網上找到任何有希望的東西。

我嘗試從中獲取此類資訊,/proc/net/dev但該文件似乎沒有任何關於每個值含義的手冊。

而且大多數網路監控工具都不是grep-able或awk-able,所以它們對腳本不是很好。

您好,歡迎來到 stackexchange。

首先,您要查找的不是“bash 命令”,您只是在查找命令行實用程序。

其次,這些指標必須隨著時間的推移而收集,並且會消耗主機上的資源,因此預設情況下不會這樣做。

您可以通過輪詢命令來創建自己的指標ip -s link show <interface>,例如:

$ ip -s link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
   link/ether b8:ae:ed:72:f3:b3 brd ff:ff:ff:ff:ff:ff
   RX:    bytes   packets errors dropped  missed   mcast
   579827124444 443147837      0       0       0 2802393
   TX:    bytes   packets errors dropped carrier collsns
   153295015536 161518564      0       0       0       0

然後解析出RX:字節和TX:字節並將它們儲存起來以備後用。經過一段固定的時間後,再次讀取這些指標並根據計數和經過的時間量計算您想要的值。

對於網卡正常執行時間,您可能必須檢測網路介面的狀態變化,我不知道任何跟踪介面啟動時間的東西。

如評論中所述,有第三方軟體包可以為您完成其中的一些操作,例如bwm-ng,但預設情況下它可能未安裝在您的發行版中。話雖如此,他們只會從您啟動實用程序時開始收集指標。

引用自:https://unix.stackexchange.com/questions/720483