Bash
bash 命令獲取網路資訊
我需要一個 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
,但預設情況下它可能未安裝在您的發行版中。話雖如此,他們只會從您啟動實用程序時開始收集指標。